如何指定core.cargo.version在cargo-maven2-plugin中使用

2020年2月22日 26点热度 0条评论

我正在尝试升级现有的Maven应用程序以使用tomcat 7.10及更高版本。

在7.8上,我使用cargo-maven2-plugin启动了tomcat容器并部署了webapp,可以正常工作。

在7.10及更高版本上,此操作失败并显示以下错误:

[WARNING] [talledLocalContainer] 14/04/2011 12:21:43 PM org.apache.tomcat.util.digester.Digester startElement
[WARNING] [talledLocalContainer] SEVERE: Begin event threw exception
[WARNING] [talledLocalContainer] java.lang.ClassNotFoundException: org.apache.catalina.mbeans.ServerLifecycleListener

这是由于以下事实:该库已在7.9中的tomcat中删除,但是我使用的cargo版本仍在server.xml配置中指定该库。

该错误已在货物1.1.0(
http://jira.codehaus.org/browse/CARGO-923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel)中修复

我正在尝试找出如何强制Maven(或更具体地说是cargo-maven2-plugin)应该使用的货物版本。

我的pom.xml的相关部分如下所示:

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.0.6</version>
    <configuration>
        <container>
            <containerId>tomcat7x</containerId>
            <zipUrlInstaller>
                <url>http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.12/bin/apache-tomcat-7.0.12.zip</url>
                <installDir>${user.home}/java/cargo/</installDir>
            </zipUrlInstaller>
        </container>
        <configuration>
            <properties>
                <cargo.logging>low</cargo.logging>
                <cargo.servlet.port>8280</cargo.servlet.port>
            </properties>
        </configuration>
    </configuration>
    <executions>
        <execution>
            <phase>install</phase>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
    </executions>
</plugin>

问题在于,这将始终通过cargo-maven2-plugin版本号使用商品1.6。如果我检查mvnrepository,则这是可用的最新版本(并且已损坏)。

如果我尝试在configuration-> properties部分中指定core.cargo.version,那么似乎没有什么区别。

有任何想法吗?

解决方案如下:

我知道这张票很旧,但是答案对其他会打开它的人很有用。

您可以直接在pom.xml的插件定义中指定依赖项,从而像以下示例中那样覆盖插件依赖项的版本。 cargo-maven2-plugin的版本是1.4.10,我重写某些依赖项的版本以改用1.4.11

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.4.10</version>
    <configuration>
        <container>
            <containerId>tomcat7x</containerId>
        </container>
    </configuration>
    <executions>
        <execution>
            <id>run</id>
            <goals>
                <goal>start</goal>
            </goals>
            <phase>pre-integration-test</phase>
        </execution>
        <execution>
            <id>finish</id>
            <goals>
                <goal>stop</goal>
            </goals>
            <phase>post-integration-test</phase>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-core-api-generic</artifactId>
            <version>1.4.11</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-documentation</artifactId>
            <version>1.4.11</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-daemon-client</artifactId>
            <version>1.4.11</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-core-api-container</artifactId>
            <type>test-jar</type>
            <version>1.4.11</version>
        </dependency>
    </dependencies>
</plugin>