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