首页 文章

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

提问于
浏览
1

我尝试使用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 回答

  • 2

    好的 - 这里有一些事情:

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

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

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

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

相关问题