Java 使用Cargo with Maven远程部署战争,无需热部署

Java 使用Cargo with Maven远程部署战争,无需热部署,java,tomcat,maven,cargo,Java,Tomcat,Maven,Cargo,我们在构建服务器上使用Cargo with Maven将WAR文件从构建服务器远程部署到内部QA服务器进行测试 我们当前项目的POM如下图所示,可以在热部署中正常工作 问题是,我们希望Cargo插件停止Tomcat实例,部署新WAR,然后启动Tomcat,而不是热部署。有没有办法改变POM来管理这个场景 我们的Maven构建定义为: mvn clean deploy ... cargo:redeploy 以及POM中的cargo插件设置: <plugi

我们在构建服务器上使用Cargo with Maven将WAR文件从构建服务器远程部署到内部QA服务器进行测试

我们当前项目的POM如下图所示,可以在热部署中正常工作

问题是,我们希望Cargo插件停止Tomcat实例,部署新WAR,然后启动Tomcat,而不是热部署。有没有办法改变POM来管理这个场景

我们的Maven构建定义为:

mvn clean deploy ... cargo:redeploy
以及POM中的cargo插件设置:

                  <plugin>
                        <groupId>org.codehaus.cargo</groupId>
                        <artifactId>cargo-maven2-plugin</artifactId>
                        <configuration>
                            <container>
                                <containerId>tomcat7x</containerId>
                                <type>remote</type>
                                <systemProperties>
                                    <cargo.jvmargs>-XX:MaxPermSize=256M -Xmx1024m</cargo.jvmargs>
                                </systemProperties>
                            </container>
                            <configuration>
                                <type>runtime</type>
                                <properties>
                                    <cargo.hostname>qa-server</cargo.hostname>
                                    <cargo.servlet.port>8080</cargo.servlet.port>
                                    <cargo.tomcat.manager.url>http://qa-server:8080/manager</cargo.tomcat.manager.url>
                                    <cargo.remote.username>username</cargo.remote.username>
                                    <cargo.remote.password>pass</cargo.remote.password>
                                </properties>
                            </configuration>
                            <deployer>
                                <type>remote</type>
                                <deployables>
                                    <deployable>
                                        <groupId>com.ourcompany</groupId>
                                        <artifactId>myapp-artifactId</artifactId>
                                        <type>war</type>
                                        <properties>
                                            <context>latest</context>
                                        </properties>
                                    </deployable>
                                </deployables>
                            </deployer>
                        </configuration>
                    </plugin>

org.codehaus.cargo
cargo-maven2-plugin
tomcat7x
遥远的
-XX:MaxPermSize=256M-Xmx1024m
运行时
qa服务器
8080
http://qa-server:8080/manager
用户名
通过
遥远的
我们公司
myapp-artifactId
战争
最新的

我们在货物方面遇到了困难。过了一会儿,tomcat被卡住了,无法重新启动。货物不允许启动/停止tomcat


因此,我们最终做的是放弃货物,使用一个脚本在离詹金斯机器很远的地方重新启动tomcat。此外,我们在用于部署战争的集成机上共享一个文件夹。我们还将maven assembly插件用于conf文件和文件夹。

在build.xml文件中调用cleanTomcat ant任务,并遵循以下流程如何:

#1. stop, clean container, start
mvn cargo:stop 
    antrun:run <<<<<<< build.xml file to clean +war +warUnpacked +context.xml
    cargo:start

#2. deploy your webapp
mvn cargo:deploy
#1。停止,清洁容器,启动
mvn货物:停止

安特伦:运行热部署会有什么问题?您是否遇到过希望货物停止和启动的问题
tomcat