<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.17</version>
<configuration>
<container>
<containerId>${cargo.containerId}</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.tomcat.manager.url>http://${cargo.hostname}:${cargo.servlet.port}/manager</cargo.tomcat.manager.url>
<cargo.remote.username>${cargo.remote.username}</cargo.remote.username>
<cargo.remote.password>${cargo.remote.password}</cargo.remote.password>
<cargo.servlet.port>${cargo.servlet.port}</cargo.servlet.port>
<cargo.hostname>${cargo.hostname}</cargo.hostname>
<cargo.tomcat.ajp.port>${cargo.tomcat.ajp.port}</cargo.tomcat.ajp.port>
</properties>
</configuration>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>/${project.build.finalName}</context>
</properties>
<!-- 可选:验证是否部署成功 -->
<pingURL>http://${cargo.hostname}:${cargo.servlet.port}/${project.build.finalName}/</pingURL>
<!-- 可选:验证超时时间,默认是120000 毫秒-->
<pingTimeout>60000</pingTimeout>
</deployable>
</deployables>
</configuration>
</plugin>
需要tomcat manager管理功能打开和权限配置好,然后可以执行如下命令将打包好的war包部署到远端tomcat中去,挺方便的
mvn clean package cargo:redeploy
以插件方式只能一次部署一个war包,若要一次部署多个war包的话,可以采用编程方式:
import org.codehaus.cargo.container.tomcat.*;
/**
* Created by xiaojun on 2016/1/7.
*/
public class TestMain {
public static void main(String[] args) throws Exception {
TomcatRuntimeConfiguration runtimeConfiguration_n1 = new TomcatRuntimeConfiguration();
runtimeConfiguration_n1.setProperty("cargo.hostname","${hostname}");
runtimeConfiguration_n1.setProperty("cargo.protocol","http");
runtimeConfiguration_n1.setProperty("cargo.remote.password","admin");
runtimeConfiguration_n1.setProperty("cargo.remote.uri","http://n1:8080/manager/text");
runtimeConfiguration_n1.setProperty("cargo.remote.username","admin");
runtimeConfiguration_n1.setProperty("cargo.servlet.port","8080");
Tomcat7xRemoteContainer remoteContainer_7x = new Tomcat7xRemoteContainer(runtimeConfiguration_n1);
Tomcat7xRemoteDeployer remoteDeployer_7x = new Tomcat7xRemoteDeployer(remoteContainer_7x);
TomcatRuntimeConfiguration runtimeConfiguration_n2 = new TomcatRuntimeConfiguration();
runtimeConfiguration_n2.setProperty("cargo.hostname","n2");
runtimeConfiguration_n2.setProperty("cargo.protocol","http");
runtimeConfiguration_n2.setProperty("cargo.remote.password","admin");
runtimeConfiguration_n2.setProperty("cargo.remote.uri","http://n2:8080/manager/text");
runtimeConfiguration_n2.setProperty("cargo.remote.username","admin");
runtimeConfiguration_n2.setProperty("cargo.servlet.port","8080");
Tomcat8xRemoteContainer remoteContainer_8x = new Tomcat8xRemoteContainer(runtimeConfiguration_n2);
Tomcat8xRemoteDeployer remoteDeployer_8x = new Tomcat8xRemoteDeployer(remoteContainer_8x);
// System.out.println(remoteContainer.getState().isStopped());
TomcatWAR tomcatWAR = new TomcatWAR("D:\\PF-Foundation-DACE\\trunk\\dace-search\\target\\dace-search.war");
System.out.println("================redeploy n1 start========================");
remoteDeployer_7x.redeploy(tomcatWAR);
System.out.println("================redeploy n1 stop========================");
System.out.println("================redeploy n2 start========================");
remoteDeployer_8x.redeploy(tomcatWAR);
System.out.println("================redeploy n2 stop========================");
}
}