使用Cargo实现自动化布署
??? Cargo是一组帮助用户操作Web容器的工具,它能够帮助用户实现自动化部署,而且它几乎支持所有的Web窗口,如Tomcat、JBoss、Jetty和Glassfish等。
??? 部署至本地Web容器:
??? Cargo支持两种本地部署的方式,分别为standalone模式和existing模式。在standalone模式中,Cargo会从Web容器的安装目录复制一份配置到用户指定的目录,然后在此基础上部署应用,每次重新构建的时候,这个目录都会被清空,所有配置被重新生成。而且existing模式中,用户需要指定现有的Web容器配置目录,然后Cargo会直接使用这些配置并将应用部署到其对应的位置。
??? 在pom.xml中设置如下:
??? <plugin>
? ??? ??? ??? <groupId>org.codehaus.cargo</groupId>
? ??? ??? ??? <artifactId>cargo-maven2-plugin</artifactId>
? ??? ??? ??? <version>1.0</version>
? ??? ??? ??? <configuration>
? ??? ??? ??? ??? <container>
? ??? ??? ??? ??? ??? <containerId>tomcat5x</containerId>
? ??? ??? ??? ??? ??? <home>D:\Tomcat 5.5</home>
? ??? ??? ??? ??? </container>
? ??? ??? ??? ??? <configuration>
? ??? ??? ??? ??? ??? <type>standalone</type>
? ??? ??? ??? ??? ??? <home>${project.build.directory}/tomcat5x</home>
? ??? ??? ??? ??? </configuration>
? ??? ??? ??? </configuration>
? ??? </plugin>
??? 在settings.xml中设置如下:
??? <pluginGroups>
? ??? ??? <pluginGroup>org.codehaus.cargo</pluginGroup>
</pluginGroups>
让Cargo启动Tomcat并部署应用,运行:
mvn cargo:start
要将应用直接部署到现有的Web容器下,需要配置Cargo使用existing模式,如下:
??? <plugin>
? ??? ??? ??? <groupId>org.codehaus.cargo</groupId>
? ??? ??? ??? <artifactId>cargo-maven2-plugin</artifactId>
? ??? ??? ??? <version>1.0</version>
? ??? ??? ??? <configuration>
? ??? ??? ??? ??? <container>
? ??? ??? ??? ??? ??? <containerId>tomcat5x</containerId>
? ??? ??? ??? ??? ??? <home>D:\Tomcat 5.5</home>
? ??? ??? ??? ??? </container>
? ??? ??? ??? ??? <configuration>
? ??? ??? ??? ??? ??? <type>existing</type>
? ??? ??? ??? ??? ??? <home> D:\Tomcat 5.5 </home>
? ??? ??? ??? ??? </configuration>
? ??? ??? ??? </configuration>
? ??? </plugin>
部署至远程Web容器:
<plugin>
? ??? ??? ??? <groupId>org.codehaus.cargo</groupId>
? ??? ??? ??? <artifactId>cargo-maven2-plugin</artifactId>
? ??? ??? ??? <version>1.0</version>
? ??? ??? ??? <configuration>
? ??? ??? ??? ??? <container>
? ??? ??? ??? ??? ??? <containerId>tomcat5x</containerId>
? ??? ??? ??? ??? ??? <type>remote </type>
? ??? ??? ??? ??? </container>
? ??? ??? ??? ??? <configuration>
? ??? ??? ??? ??? ??? <type>runtime</type>
??? ??? ??? ? ??? ??? <properties>
??? ??? ??? ??? ??? ??? <cargo.remote.username>admin</cargo.remote.username>
??? ??? ??? ??? ??? ??? <cargo.remote.password>admin123</cargo.remote.password>
??? ??? ??? ??? ??? ??? <cargo.tomcat.manager.url>
http://192.168.0.100/manager
</cargo.tomcat.manager.url>
</properties>
? ??? ??? ??? ??? </configuration>
? ??? ??? ??? </configuration>
? ??? </plugin>
??? 让Cargo部署应用,运行命令:
??? mvn cargo:redeploy