我尝试使用 Cargo-maven2-plugin 自动部署 WAR 模块以进行测试。
我想知道如何启动tomcat服务器(预装在我的机器中)并自动将我的war部署到启动的服务器上?
Cargo 项目的文档提到,cargo:start 目标可以可选部署可部署项:
http://cargo.codehaus.org/Maven2+plugin#Maven2plugin-gettingstarted
cargo:start Start a container. That task can optionally install and configure a container; it can also optionally deploy deployables (WAR, EAR, etc.) to it.
但是,我不知道如何启用此选项以使其在运行 Cargo: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可部署项将不会部署。我必须从另一个 shell 运行“mvn Cargo:deploy”来部署这场 war 。
最佳答案
好的——这里发生了一些事情:
1) 您提到 Tomcat 服务器已预先安装在计算机上,但您仍然在目标目录中指定了目录。这不是一个好主意,因为它会在 mvn clean
后被清除。
2) 对于预安装的 Tomcat,您没有将部署程序配置中的type
设置为existing
。
3) 你的上下文定义在哪里?您是否有上下文片段文件,或者您是否在 WAR 的 WEB-INF 目录中使用 tomcat.xml 文件?
底线是配置错误的组合阻碍了您。发布更新的 Maven 配置和有关 XML 上下文定义的附加详细信息,我可以为您提供进一步帮助。
关于java - 启动一个Web容器,然后使用Cargo maven2插件部署 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246690/