使用Maven Cargo 插件进行远程Tomcat6的部署(四)

上一篇 / 下一篇  2012-06-06 17:38:17 / 个人分类:Maven

4)Cargo执行阶段和目标:

 

Xml代码  收藏代码
  1. <executions>  
  2.                     <execution>  
  3.                         <id>start-container</id>  
  4.                         <phase>pre-integration-test</phase>  
  5.                         <goals>  
  6.                             <goal>deployer-redeploy</goal><!--等同于redeploy,本地不支持redeploy -->  
  7.                         </goals>  
  8.                     </execution>  
  9.                     <execution>  
  10.                         <id>stop-container</id>  
  11.                         <phase>post-integration-test</phase>  
  12.                         <goals>  
  13.                             <goal>deployer-undeploy</goal>  
  14.                         </goals>  
  15.                     </execution>  
  16.                     <execution>  
  17.                         <id>verify-deploy</id>  
  18.                         <phase>install</phase>  
  19.                         <goals>  
  20.                             <goal>deployer-redeploy</goal>  
  21.                         </goals>  
  22.                     </execution>  
  23.                     <execution>  
  24.                         <id>clean-undeploy</id>  
  25.                         <phase>pre-clean</phase>  
  26.                         <goals>  
  27.                             <goal>deployer-undeploy</goal>  
  28.                         </goals>  
  29.                     </execution>  
  30.                 </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的方式

 

Xml代码  收藏代码
  1. <profile>    
  2.       <id>cargo</id>    
  3.    <activation>    
  4.           <activeByDefault>true</activeByDefault>    
  5.       </activation>   
  6.       <properties>    
  7.        <!--可单独提取并配置到profiles文件来激活 -->  
  8.     <catalina.home>${env.CATLINA_HOME}</catalina.home><!--D:\hudson_ci\hudson_dep_tools\Tomcat6.0-->  
  9.     <cargo.tomcat.manager.protocol>http</cargo.tomcat.manager.protocol>  
  10.     <cargo.tomcat.manager.hostname>127.0.0.1</cargo.tomcat.manager.hostname>  
  11.     <cargo.tomcat.manager.port>8080</cargo.tomcat.manager.port>  
  12.     <cargo.tomcat.manager.ajp.port>8009</cargo.tomcat.manager.ajp.port>  
  13.     <cargo.tomcat.manager.username>admin</cargo.tomcat.manager.username>  
  14.     <cargo.tomcat.manager.password>1234</cargo.tomcat.manager.password>  
  15.       </properties>    
  16. lt;/profile>   
 

 

不要忘了激活它。

 

Xml代码  收藏代码
  1. <activeProfiles>  
  2.       <activeProfile>cargo</activeProfile>    
  3. </activeProfiles>    
 

 

再执行"clean install",同样大功告成。


TAG:

 

评分:0

我来说两句

日历

« 2024-03-23  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 9344
  • 日志数: 12
  • 建立时间: 2011-03-08
  • 更新时间: 2012-06-06

RSS订阅

Open Toolbar