使用Maven Cargo 插件进行远程Tomcat6的部署(四)
上一篇 /
下一篇 2012-06-06 17:38:17
/ 个人分类:Maven
4)Cargo执行阶段和目标:
- <executions>
- <execution>
- <id>start-container</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>deployer-redeploy</goal>
- </goals>
- </execution>
- <execution>
- <id>stop-container</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>deployer-undeploy</goal>
- </goals>
- </execution>
- <execution>
- <id>verify-deploy</id>
- <phase>install</phase>
- <goals>
- <goal>deployer-redeploy</goal>
- </goals>
- </execution>
- <execution>
- <id>clean-undeploy</id>
- <phase>pre-clean</phase>
- <goals>
- <goal>deployer-undeploy</goal>
- </goals>
- </execution>
- </executions>
这里需要注意的是执行目标中我使用了redeploy,而不是deploy。这是因为重复执行"install"构建步骤使用deploy会报项目已存在的错误,不利于重复部署,当然你使用"clean install"就没有问题。
远程配置大体如此,你在根pom项目下运行"mvn install"就可以把最新WAR快照部署到远程Tomcat中运行。
五、运用反应堆模式灵活部署项目
细心的朋友马上就会发现,为什么在单独执行"mvn clean"或者"mvn install"有时候会出错,而且我们使用测试错误的主要原因很多,但是使用同一个Tomcat或者远程Tomcat关闭的时候就会构建就会出现很多问题。
如果我们希望两个模块相处融洽的话,那么最好加入反应堆控制。
比如我想只需要执行本地部署:
clean install -pl cargosample-deployer-local/ -am
同样只执行远程部署:
clean install -pl cargosample-deployer-remote/ -am
关于反应堆的更过信息,请点击按需构建多模块,玩转Maven反应堆。
六、通过定义profile文件的方式部署
如果涉及团队开发的话,parent pom文件中的属性不见得都适用,让每个成员灵活定义自己的属性就显得尤为重要。
剪切父pom文件中关于cargo 配置的部分,并在settings中定义一个属于Cargo的profile文件添加如下文本并自动激活它,当然你也可已选择手动激活,关于手动激活请参阅激活Maven profile的方式。
- <profile>
- <id>cargo</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <properties>
-
- <catalina.home>${env.CATLINA_HOME}</catalina.home>
- <cargo.tomcat.manager.protocol>http</cargo.tomcat.manager.protocol>
- <cargo.tomcat.manager.hostname>127.0.0.1</cargo.tomcat.manager.hostname>
- <cargo.tomcat.manager.port>8080</cargo.tomcat.manager.port>
- <cargo.tomcat.manager.ajp.port>8009</cargo.tomcat.manager.ajp.port>
- <cargo.tomcat.manager.username>admin</cargo.tomcat.manager.username>
- <cargo.tomcat.manager.password>1234</cargo.tomcat.manager.password>
- </properties>
- lt;/profile>
不要忘了激活它。
- <activeProfiles>
- <activeProfile>cargo</activeProfile>
- </activeProfiles>
再执行"clean install",同样大功告成。
收藏
举报
TAG: