java - 启动一个Web容器,然后使用Cargo maven2插件部署 war

标签 java web-applications maven-2 cargo

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

相关文章:

java - 如何让Jetty动态加载 "static"页面

javascript - 单页网站 ~ 关于索引和社交媒体共享的最佳实践和方法

java - 本地 jar 不包含在类路径 (`<scope>system</scope>` 中)

Maven 多模块执行点

java - TensorFlow找不到原生库

java - 使用 selenium 在 IE 中处理刷新警报

javascript - 检测 Chrome for iOS 地址栏何时显示

firefox - opera 中的任何调试工具(如 firefox 中的 firebug)?

maven - 配置duplicate-finder-maven-plugin仅扫描特定位置并排除其他所有内容

java - 在 JSP 下拉菜单中调用常量