2010-11-22 27 views
1

我试图使用cargo-maven2插件来自动化我的WAR模块部署进行测试。启动web容器,然后部署与货物maven2插件的战争

我想知道如何启动tomcat服务器(预先安装在我的机器上)并自动将我的战争部署到启动的服务器?从货物项目

文档中提到的货物:开始目标就可选部署deployables:

http://cargo.codehaus.org/Maven2+plugin#Maven2plugin-gettingstarted

货物:开始启动的容器。该任务可以选择安装和配置容器;它也可以选择性地部署可部署(WAR,EAR等)。

但是,我不知道如何启用此选项以使其在运行货物时启用deployables:start。

这是我目前的POM的配置:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.cargo</groupId> 
      <artifactId>cargo-maven2-plugin</artifactId> 
      <version>1.0</version> 
      <configuration> 
       <wait>true</wait> 
       <container> 
        <containerId>tomcat6x</containerId> 
        <home>${tomcat.home}</home> 
       </container> 
       <configuration> 
        <type>standalone</type> 
        <home>target/tomcat6x</home> 
       </configuration> 
       <deployer> 
        <deployables> 
         <deployable> 
          <groupId>${project.groupId}</groupId> 
          <artifactId>my-war</artifactId> 
          <type>war</type> 
         </deployable> 
        </deployables> 
       </deployer> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>my-war</artifactId> 
     <version>${project.version}</version> 
     <type>war</type> 
    </dependency> 
</dependencies> 

当我运行“命令mvn货物:启动”,Tomcat服务器将启动,但是,我的战部署不会部署。而且我必须从另一个外壳运行“mvn cargo:deploy”来部署这场战争。

回答

2

OK - 有几件事情会在这里:

1)你提到Tomcat服务器是计算机上预装,但你们又在你的目标目录指定的目录中。这不是一个好主意,因为在mvn clean之后会消失。

2)对于预安装的Tomcat,您并未将type设置为existing在部署程序配置中。

3)您的上下文定义在哪里?您是否有上下文片段文件,或者您是否在WAR中的WEB-INF目录中使用了tomcat.xml文件?

底线的配置错误的组合阻止你。发布更新的Maven配置和有关XML上下文定义的添加详细信息,我可以进一步帮助您。