Cargo是一组帮助用户操作Web容器的工具,能够实现自动化部署,并且支持几乎所有的Web容器,如Tomcat、JBoss、Jetty和Glassfish等。Cargo通过cargo-maven2-plugin提供了Maven集成,可以使用该插件将Web项目部署到Web容器中。cargo-maven2-plugin和jetty-maven-plugin功能相似,但目的不同。cargo-maven2-plugin主要服务于自动化部署,而jetty-maven-plugin主要用来帮助日常的快速开发和测试。

cargo支持两种本地部署的方式,分别是standalone模式和existing模式。

standalone模式中,Cargo会从Web容器的安装目录复制一份配置到用户指定的目录,然后在此基础上部署应用,每次重新构建的时候,这个目录都会被清空,所有的配置重新生成。

而在existing模式中,用户需要指定现有的Web容器配置目录,然后Cargo会直接使用这些配置并将应用部署到对应的位置。

standalone配置样例:

<plugin><groupId>org.codehaus.cargo</groupId><artifactId>cargo-maven2-plugin</artifactId><version>1.4.0</version><configuration><container><containerId>tomcat6x</containerId><home>D:\devware\apache-tomcat-6.0.29</home></container><configuration><type>standalone</type><home>${project.build.directory}/tomcat6x</home><properties><cargo.servlet.port>8080</cargo.servlet.port></properties></configuration></configuration></plugin>

Cargo默认端口为8080可以通过properties元素加入cargo.servlet.port属性改变大u你口号,cargo-maven2-plugin不是maven默认插件,需要将其添加到settings.xml的pluginGroup元素以方便命令行使用。

现在要让Cargo启动tomcat并部署应用,只需要运行:

mvn cargo:start

要将应用直接部署到现有的Web容器下,需要配置Cargo使用existing模式,如下:

<plugin><groupId>org.codehaus.cargo</groupId><artifactId>cargo-maven2-plugin</artifactId><version>1.4.0</version><configuration><container><containerId>tomcat6x</containerId><home>D:\devware\apache-tomcat-6.0.29</home></container><configuration><type>existing</type><home>D:\devware\apache-tomcat-6.0.29</home><properties><cargo.servlet.port>8080</cargo.servlet.port></properties></configuration></configuration></plugin>

部署至远程Web容器:

<plugin><groupId>org.codehaus.cargo</groupId><artifactId>cargo-maven2-plugin</artifactId><version>1.4.0</version><configuration><container><containerId>tomcat6x</containerId><!-- type默认值为installed --><type>remote</type></container><configuration><type>runtime</type><!-- 不同的Web容器,有不同的属性配置,需要查询相关具体的容器配置 --><properties><cargo.remote.username>admin</cargo.remote.username><cargo.remote.password>admin123</cargo.remote.password><cargo.tomcat.manager.url>http://localhost:8080/manager</cargo.tomcat.manager.url></properties></configuration></configuration></plugin>

对于远程部署方式来说,container元素的type子元素的值必须为remote。

有了上述配置后,可以使用如下命令让Cargo部署应用了:

mvn cargo:redeploy

如果容器中已经部署了当前应用,Cargo会先将其卸载,然后在重新部署。

【maven实战】41-使用cargo-maven2-plugin实现自动化部署相关推荐

  1. SpringBoot + maven + Jenkins + docker 实现docker集群一键自动化部署

    整体可分为以下几个步骤: 1,创建springboot项目 2,搭建docker私服库 3,build镜像并上传到私服库 4,搭建docker swarm集群 5,搭建jenkins并构建部署 演示系 ...

  2. git maven 一键部署_Jenkins Git Maven搭建自动化部署项目环境 邮件通知

    简介 折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/j ...

  3. Vue3+TypeScript从入门到进阶(八)——项目打包和自动化部署——附沿途学习案例及项目实战代码

    文章目录 一.简介 二.Vue2和Vue3区别 三.Vue知识点学习 四.TypeScript知识点 五.项目实战 六.项目打包和自动化部署 一. 项目部署和DevOps 1.1. 传统的开发模式 1 ...

  4. [原创]Maven实战-读书笔记

    Maven读书笔记  Maven读书笔记 依赖 快捷键:Alt+Shift+X M 使用ArcheType来创建Maven项目骨架: Maven中坐标的定义 依赖范围 依赖传递 依赖调解 可选依赖 ...

  5. 《Maven实战》 读书笔记

    前言:此为个人阅读<Maven实战>的笔记,非入门教程. 一.安装配置: 1.安装并配置好JDK: 2.从Apache下载适当版本的maven压缩包: 3.解压maven压缩包,放在适当位 ...

  6. 《Maven实战》读书笔记

    目标 主要介绍maven的基本概念和工作机制,基于Maven实战 坐标和依赖 依赖管理的基础是坐标,maven仓库也基于maven坐标管理 坐标 maven的坐标包括groupId.artifactI ...

  7. Maven实战:Maven生命周期

    前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解 ...

  8. 【Maven实战】之基础知识点

    2019独角兽企业重金招聘Python工程师标准>>> maven优点 优秀的构建工具,帮我们自动化构建过程,从清理,编译,测试到生成报告,再到打包和部署. 跨平台,对外实现一致的操 ...

  9. Maven实战(四)——基于Maven的持续集成实践

    相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订,它清晰地解释了持续集成的概念,并总结了 ...

  10. [Maven实战](9)传递性依赖

    了解Spring的朋友都知道,创建一个Spring Framework项目都需要依赖什么样的Jar包.如果不使用Maven,那么在项目中就需要手动下载相关的依赖.由于Spring Framework又 ...

最新文章

  1. 用C语言解“求整数段和”题
  2. RabbitMQ 简介
  3. matlab中imresize函数的用法,为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同
  4. mysql int 默认值 为ull_数据类型--ULL、ll
  5. 5.6 date:显示与设置系统时间
  6. 基于思科模拟器的AAA配置与验证
  7. linux安装apache+mysql+php3.8练习环境
  8. k8s修改node的ROLES标签
  9. ORACLE sid,pid,spid总结
  10. linux环境中nagios(nagios core)安装?nagios安装?
  11. 【阿卡乐谱】【日常分享】超级强大的简谱-《大海啊,故乡》
  12. p9plus升级鸿蒙,华为P9 Plus(VIE-AL10 EMUI 8.0)手机完美获取root教程,最强root工具,亲测可用!...
  13. GitHub代理设置
  14. 阿里巴巴瓴羊CEO朋新宇走进清涧县,点亮“橙星计划”第一颗星
  15. Windows10系统无法更改默认浏览器等默认设置
  16. html标签和css参数
  17. 一根MicroUSB线完成树莓派zero开机配置(包括SSH以及网络共享)
  18. Pytorch实战__反向攻击(Adversarial Attack)
  19. 【老生谈算法】matlab实现轮盘赌算法-Roulette——轮盘赌算法
  20. 005_HTML制作炫酷登录界面(CSS精灵图、背景图片局部显示)

热门文章

  1. 2015-1-11 【erlang】erl中的make -make 参数 以及 Emakefile
  2. 仿照string类,实现自定义My_strng类,以及相关操作
  3. 把彩色图片变成适合素描的黑白图片
  4. 如何认识空间观、系统观和发展观,以及对GIS空间分析的作用
  5. 特殊时间,将页面整体调整成灰色
  6. 李嘉诚预言新操作系统即将面世 三星平台梦隐现
  7. FPGA网表edf导出及仿真
  8. 使用Spectre仿真Spice网表
  9. matlab求差分方程的单位脉冲响应,实验2离散系统的差分方程、单位脉冲响应及卷积分析.doc...
  10. MODIS 及其 数据、产品