我尝试使用cargo-maven2-plugin自动化我的WAR模块部署进行测试。
我想知道如何启动tomcat服务器(预装在我的机器中)并自动将我的战争部署到启动的服务器?
Cargo项目的文档提到货物:启动目标可以可选部署可部署的程序:
http://cargo.codehaus.org/Maven2+plugin#Maven2plugin-gettingstarted
货物:开始启动一个容器。该任务可以选择安装和配置容器;它还可以选择部署可部署的(WAR,EAR等)。
但是,我不知道如何启用此选项以使其在运行货物时部署可部署的内容: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 cargo:start”时,将启动tomcat服务器,但是,不会部署my-war deployable。我必须从另一个shell运行“mvn cargo:deploy”来部署这场战争。
答案 0 :(得分:2)
好的 - 这里有一些事情发生了:
1)您提到Tomcat服务器已预先安装在计算机上,但您已在目标目录中指定了目录。这不是一个好主意,因为在mvn clean
后会消失。
2)对于预安装的Tomcat,您没有在部署者配置中将type
设置为existing
。
3)您的上下文定义在哪里?您是否有上下文片段文件,或者您在WAR中的WEB-INF目录中使用了tomcat.xml文件?
底线组合错误的组合阻碍了你。发布更新的Maven配置和有关XML上下文定义的附加详细信息,我可以为您提供进一步的帮助。