我们在构建服务器上使用 Cargo 和 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>