`
sunbin
  • 浏览: 349745 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用cargo一键远程部署到tomcat

 
阅读更多

最近接手了几个Tomcat的web小应用,每次功能上线的时候都要收工部署到远程的开发环境、生产环境,操作步骤挺多的,本着能机器做的绝不人工做的原则找了几个自动部署的方案,对比了一下,发现maven的cargo-maven2-plugin插件最适合当前场景,分享一下。

这个插件的工作原理是利用tomcat自带的manager应用来部署web应用,项目介绍 https://codehaus-cargo.github.io/cargo/Home.html

要做的步骤也挺简单,以我本机的tomcat8为例。首先确保要部署的远程环境中的tomcat下已经存在manager应用,接着配置tomcat8下manger访问的role username password,修改tomcat8/conf/tomcat-users.xml文件,增加如下配置:

Xml代码  收藏代码
  1. <role rolename="manager-gui"/>  
  2. <role rolename="manager-script"/>  
  3. <role rolename="manager-jmx"/>  
  4. <role rolename="manager-status"/>  
  5. <user username="admin" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>  

为了能让用户能以text访问manager,最好给分配的用户名配置上所有这四种tomcat预定义的角色manager-gui,manager-script,manager-jmx,manager-status

接着在实际的web项目的pom文件中增加插件配置:

Xml代码  收藏代码
  1. <plugin>  
  2.     <groupId>org.codehaus.cargo</groupId>  
  3.     <artifactId>cargo-maven2-plugin</artifactId>  
  4.     <version>1.5.0</version>  
  5.     <configuration>  
  6.         <container>  
  7.             <containerId>tomcat8x</containerId>  
  8.             <type>remote</type>  
  9.         </container>  
  10.         <configuration>  
  11.             <type>runtime</type>  
  12.             <properties>  
  13.                 <cargo.protocol>http</cargo.protocol>  
  14.                 <cargo.hostname>实际域名</cargo.hostname>  
  15.                 <cargo.servlet.port>实际端口号</cargo.servlet.port>  
  16.                 <cargo.remote.username>admin</cargo.remote.username>  
  17.                 <cargo.remote.password>123456</cargo.remote.password>  
  18.                 <cargo.remote.uri>http://实际域名:实际端口号/manager/text</cargo.remote.uri>  
  19.             </properties>  
  20.         </configuration>  
  21.     </configuration>  
  22. </plugin>  

cargo.remote.username和cargo.remote.password就是上面配置的tomcat-users.xml文件里user节点的username和password,cargo.remote.uri里的http://实际域名:实际端口号/就是远程部署的tomcat实际访问的根路径地址。

最后在web项目根目录运行命令:

Txt代码  收藏代码
  1. mvn org.codehaus.cargo:cargo-maven2-plugin:redeploy  

一键远程部署web应用就搞定了。

如果想命令短一点可以在maven的settings.xml中增加一个pluginGroup:

Xml代码  收藏代码
  1. <pluginGroups>  
  2.        <pluginGroup>org.codehaus.cargo</pluginGroup>  
  3. </pluginGroups>  

这样命令就可以简写成:

Txt代码  收藏代码
  1. mvn cargo:redeploy  

 

分享到:
评论

相关推荐

    maven cargo自动化部署tomcat7.pdf

    要实现Cargo对Tomcat7的远程部署,需要对Tomcat的conf/tomcat-users.xml文件进行配置。添加具有管理权限的角色(manager、admin等),并创建具有相应角色的用户。这是为了确保当使用Cargo插件远程访问Tomcat服务器...

    cargo远程部署web项目资料

    使用Cargo进行远程部署的好处在于它可以自动化部署流程,减少手动操作,提高效率。这对于持续集成和持续部署(CI/CD)的环境特别有用,尤其是在大型项目中,能够确保每次构建后应用都能正确部署。 通过这份"cargo...

    使用Maven Cargo 插件管理Tomcat6的部署

    在这样的项目结构中,Cargo可以帮助我们逐一部署所有子模块到Tomcat6。 总结来说,Maven Cargo插件通过集成Maven构建流程,简化了在Tomcat6等服务器上的应用部署工作。开发者无需手动操作服务器,只需通过配置和...

    maven工程在tomcat服务器上的自动化部署(cargo版)

    NULL 博文链接:https://doujiang327.iteye.com/blog/1463726

    tomcat7,8,maven

    - **Cargo插件**:Cargo提供更灵活的容器管理,包括远程部署到生产环境的Tomcat服务器。 5. **Maven生命周期与构建过程**: - **clean**:清理项目目标目录,如target。 - **compile**:编译源代码为字节码。 -...

    Cargo实现自动化部署

    使用cargo-maven2-plugin插件配置Tomcat本地自动发布 .

    maven-tomcat自动部署

    除了上述插件,还可以使用Maven的Cargo插件或者Jenkins等自动化工具实现更复杂的部署策略,如热更新、滚动更新等。这些工具和插件使得开发者能够专注于编写代码,而无需担心部署过程中的繁琐操作。 总结来说,Maven...

    基于cargo-make构建yew-todomvc

    3.启动一个命令窗口,使用cargo make build构建项目 4.使用cargo make serve启动项目 5.启动另外一个命令窗口,使用cargo make watch跟踪文件变动,自动构建项目 6. 打开浏览器,地址栏输入:http://127.0.0.1:8000...

    领域驱动设计cargo案例

    Cargo案例是DDD中的一个经典示例,它模拟了一个物流系统中货物运输的过程,涵盖了从接收订单到货物送达目的地的整个流程。 在Cargo案例中,我们首先遇到的是核心领域概念——Cargo(货物)。Cargo作为业务实体,...

    gradle-cargo-plugin:Gradle插件,可通过Cargo为本地和远程容器提供部署功能

    Gradle Cargo Plugin是一款强大的构建工具Gradle的插件,它集成了Cargo库,使得开发者能够方便地对Web应用程序进行本地和远程的部署操作。Cargo是一款非常实用的Java应用部署工具,支持多种应用服务器,如Tomcat、...

    deploy.rar

    "deploy.rar"这个压缩包提供的插件正是为了满足这一需求,它能够帮助开发者将编译成功的War或Jar包一键部署到远程应用服务器上,极大地简化了部署流程。该插件的核心技术是Cargo,一个强大的应用容器管理和部署工具...

    Cargo 手册中文版 PDF 版本

    Cargo是Rust编程语言的包管理器和构建工具,它负责管理项目的依赖关系、构建代码、生成可分发的包以及发布到crates.io——Rust社区的官方包注册库。Cargo手册是官方文档,提供了关于如何使用Cargo的详细指南和参考...

    cargo-core-tools-jboss-deployer-7-1.4.6.zip

    Cargo是一个强大的开源项目,它允许开发者在多种容器(如Tomcat, JBoss, Glassfish等)上部署、启动、停止以及管理Java应用。这个版本,7.1.4.6,专注于JBoss 7系列的部署支持。 【描述】中提到的"jsr107tck.zip"是...

    Cargo一个几乎没有用户界面的浏览器

    由于其简洁的特性,Cargo 可能减少了潜在的数据追踪和第三方插件的使用,这有助于保护用户的在线隐私。同时,去除不必要的附加组件也可能降低了浏览器遭受恶意软件攻击的风险。 在"其它杂项"这个标签下,我们可以...

    美团IDEA插件实现Java应用的热部署实践

    Sonic插件可以使用户在本地编写代码一键部署到远程环境,修改代码、部署、联调请求、查看日志,循环反复。如果不考虑代码修改时间,通常一个循环需要20~35分钟,而使用Sonic可以把整个时长缩短至5~10秒,而且能够给...

    cargo-bundle:将rust可执行文件包装在特定于OS的应用程序包中

    货物捆绑 将Rust可执行文件... 这会将发布到最新版本的cargo-bundle作为子命令添加到默认的cargo安装中。 要开始使用cargo bundle ,请在您项目的Cargo.toml文件中添加[package.metadata.bundle]部分。 本节描述了生

    cargo-outdated, 用于显示 Rust 依赖项什么时候过期的cargo子命令.zip

    cargo-outdated, 用于显示 Rust 依赖项什么时候过期的cargo子命令 货物过期 Linux: 用于显示 Rust 依赖项什么时候过期的cargo子命令cargo-outdated 用于显示依赖项是否有更新的版本。工作原理cargo-outdated的功能很...

    cargo-sweep:一个cargo子命令,用于清理由Cargo生成的未使用的构建文件

    一个cargo子命令,用于清理由Cargo生成的未使用的构建文件。 动机 理想情况下,您想要: 缓存最新工件,以加快构建时间 目标大小受限制,因此CI高速缓存(在Travis等上)是快速的 一种同时维护一个或多个项目的简便...

    cargo-deny-Cargo插件可帮助您管理大型依赖图-Rust开发

    :cross_mark:cargo-deny cargo-deny是一个货运插件,用于减少依赖项。 有关详细文档,请参见the。 为了以CI作为GitHub Action在CI上运行,:cross_mark:cargo-deny cargo-deny是一个用于简化依赖关系的cargo插件。 ...

Global site tag (gtag.js) - Google Analytics