最近接手了几个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文件,增加如下配置:
- <role rolename="manager-gui"/>
- <role rolename="manager-script"/>
- <role rolename="manager-jmx"/>
- <role rolename="manager-status"/>
- <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文件中增加插件配置:
- <plugin>
- <groupId>org.codehaus.cargo</groupId>
- <artifactId>cargo-maven2-plugin</artifactId>
- <version>1.5.0</version>
- <configuration>
- <container>
- <containerId>tomcat8x</containerId>
- <type>remote</type>
- </container>
- <configuration>
- <type>runtime</type>
- <properties>
- <cargo.protocol>http</cargo.protocol>
- <cargo.hostname>实际域名</cargo.hostname>
- <cargo.servlet.port>实际端口号</cargo.servlet.port>
- <cargo.remote.username>admin</cargo.remote.username>
- <cargo.remote.password>123456</cargo.remote.password>
- <cargo.remote.uri>http://实际域名:实际端口号/manager/text</cargo.remote.uri>
- </properties>
- </configuration>
- </configuration>
- </plugin>
cargo.remote.username和cargo.remote.password就是上面配置的tomcat-users.xml文件里user节点的username和password,cargo.remote.uri里的http://实际域名:实际端口号/就是远程部署的tomcat实际访问的根路径地址。
最后在web项目根目录运行命令:
- mvn org.codehaus.cargo:cargo-maven2-plugin:redeploy
一键远程部署web应用就搞定了。
如果想命令短一点可以在maven的settings.xml中增加一个pluginGroup:
- <pluginGroups>
- <pluginGroup>org.codehaus.cargo</pluginGroup>
- </pluginGroups>
这样命令就可以简写成:
- mvn cargo:redeploy
相关推荐
要实现Cargo对Tomcat7的远程部署,需要对Tomcat的conf/tomcat-users.xml文件进行配置。添加具有管理权限的角色(manager、admin等),并创建具有相应角色的用户。这是为了确保当使用Cargo插件远程访问Tomcat服务器...
使用Cargo进行远程部署的好处在于它可以自动化部署流程,减少手动操作,提高效率。这对于持续集成和持续部署(CI/CD)的环境特别有用,尤其是在大型项目中,能够确保每次构建后应用都能正确部署。 通过这份"cargo...
在这样的项目结构中,Cargo可以帮助我们逐一部署所有子模块到Tomcat6。 总结来说,Maven Cargo插件通过集成Maven构建流程,简化了在Tomcat6等服务器上的应用部署工作。开发者无需手动操作服务器,只需通过配置和...
NULL 博文链接:https://doujiang327.iteye.com/blog/1463726
- **Cargo插件**:Cargo提供更灵活的容器管理,包括远程部署到生产环境的Tomcat服务器。 5. **Maven生命周期与构建过程**: - **clean**:清理项目目标目录,如target。 - **compile**:编译源代码为字节码。 -...
使用cargo-maven2-plugin插件配置Tomcat本地自动发布 .
除了上述插件,还可以使用Maven的Cargo插件或者Jenkins等自动化工具实现更复杂的部署策略,如热更新、滚动更新等。这些工具和插件使得开发者能够专注于编写代码,而无需担心部署过程中的繁琐操作。 总结来说,Maven...
3.启动一个命令窗口,使用cargo make build构建项目 4.使用cargo make serve启动项目 5.启动另外一个命令窗口,使用cargo make watch跟踪文件变动,自动构建项目 6. 打开浏览器,地址栏输入:http://127.0.0.1:8000...
Cargo案例是DDD中的一个经典示例,它模拟了一个物流系统中货物运输的过程,涵盖了从接收订单到货物送达目的地的整个流程。 在Cargo案例中,我们首先遇到的是核心领域概念——Cargo(货物)。Cargo作为业务实体,...
Gradle Cargo Plugin是一款强大的构建工具Gradle的插件,它集成了Cargo库,使得开发者能够方便地对Web应用程序进行本地和远程的部署操作。Cargo是一款非常实用的Java应用部署工具,支持多种应用服务器,如Tomcat、...
"deploy.rar"这个压缩包提供的插件正是为了满足这一需求,它能够帮助开发者将编译成功的War或Jar包一键部署到远程应用服务器上,极大地简化了部署流程。该插件的核心技术是Cargo,一个强大的应用容器管理和部署工具...
Cargo是Rust编程语言的包管理器和构建工具,它负责管理项目的依赖关系、构建代码、生成可分发的包以及发布到crates.io——Rust社区的官方包注册库。Cargo手册是官方文档,提供了关于如何使用Cargo的详细指南和参考...
Cargo是一个强大的开源项目,它允许开发者在多种容器(如Tomcat, JBoss, Glassfish等)上部署、启动、停止以及管理Java应用。这个版本,7.1.4.6,专注于JBoss 7系列的部署支持。 【描述】中提到的"jsr107tck.zip"是...
由于其简洁的特性,Cargo 可能减少了潜在的数据追踪和第三方插件的使用,这有助于保护用户的在线隐私。同时,去除不必要的附加组件也可能降低了浏览器遭受恶意软件攻击的风险。 在"其它杂项"这个标签下,我们可以...
Sonic插件可以使用户在本地编写代码一键部署到远程环境,修改代码、部署、联调请求、查看日志,循环反复。如果不考虑代码修改时间,通常一个循环需要20~35分钟,而使用Sonic可以把整个时长缩短至5~10秒,而且能够给...
货物捆绑 将Rust可执行文件... 这会将发布到最新版本的cargo-bundle作为子命令添加到默认的cargo安装中。 要开始使用cargo bundle ,请在您项目的Cargo.toml文件中添加[package.metadata.bundle]部分。 本节描述了生
一个cargo子命令,用于清理由Cargo生成的未使用的构建文件。 动机 理想情况下,您想要: 缓存最新工件,以加快构建时间 目标大小受限制,因此CI高速缓存(在Travis等上)是快速的 一种同时维护一个或多个项目的简便...
cargo-outdated, 用于显示 Rust 依赖项什么时候过期的cargo子命令 货物过期 Linux: 用于显示 Rust 依赖项什么时候过期的cargo子命令cargo-outdated 用于显示依赖项是否有更新的版本。工作原理cargo-outdated的功能很...
5. **集成CI/CD**:cargo-release可以与持续集成和持续部署(CI/CD)服务如Travis CI、GitHub Actions或GitLab CI/CD集成,自动化整个发布过程。 6. **多目标发布**:如果你的项目包含多个库或可执行文件,cargo-...