启动Web容器,然后使用cargo maven2插件部署war

时间:2010-11-22 14:53:32

标签: java web-applications maven-2 cargo

我尝试使用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”来部署这场战争。

1 个答案:

答案 0 :(得分:2)

好的 - 这里有一些事情发生了:

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

2)对于预安装的Tomcat,您没有在部署者配置中将type设置为existing

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

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