目标:使用cargo在远程tomcat9上面部署web项目
tomcat版本:tomcat9 ->apache-tomcat-9.0.40
cargo版本 1.8.2
工程:pom.xml 配置plugin
<!-- 自动化部署远程Tomcat插件 -->
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.8.2</version>
<configuration>
<container>
<containerId>tomcat9x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<!--hostname不能遗漏不然下面的managerurl就不生效了-->
<cargo.hostname>maven-server</cargo.hostname>
<cargo.remote.username>admin</cargo.remote.username>
<cargo.remote.password>admin</cargo.remote.password>
<cargo.remote.manager.url>http://maven-server:8080/manager</cargo.remote.manager.url>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
</configuration>
</plugin>
pom插件使用设置成功后
由于tomcat是另一台服务器的,需要配置tomcat的ip拦截配置,不配置则无法访问manager页面
/tomcat//webapps/manager/META-INF/context.xml
将RemoteAddrValve参数修改
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />
最后配置账号以及相关权限/tomcat/conf/tomcat-user.xml(账号密码保持和plugin中配置的一致)
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-status,manager-script,manager-jmx"/>
插件执行成功
命令
第一次部署 mvn clean package cargo:deploy
后续部署 mvn clean package cargo:redeploy
项目成功部署到远程服务器的tomcat上
接口调用测试