cargo-maven2-plugin:启动失败,“实际上没有为此配置注册的有效类型”,无论我输入的是哪个containerId

时间:2017-11-21 12:20:40

标签: cargo cargo-maven2-plugin

我正在尝试使用cargo-maven2-plugin和Tomcat 8运行集成测试。我希望Maven构建为我启动容器,因此我配置了startstop记录的目标here。问题在于,无论我输入的内容为containerIdstart目标始终会失败并显示没有已注册配置的消息。错误消息始终以

结尾
  

实际上,没有为此配置注册的有效类型。也许你拼错了吗?

我尝试了各种配置,包括我在各种教程中找到的配置,以及使用旧版Tomcat版本的配置,但没有任何帮助。错误消息始终相同。

Stack Overflow上的其他帖子建议更新Cargo版本,但这不适用于我的问题:我已经使用latest release version(1.6.5)。

那么,为什么我一直收到这个错误?

作为参考,这是我尝试过的一个完整配置:

<plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.6.5</version>
    <executions>
        <execution>
            <id>start-container</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
        <execution>
            <id>stop-container</id>
            <phase>post-integration-test</phase>
            <goals>
                <goal>stop</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <container>
            <containerId>tomcat8x</containerId>
            <artifactInstaller>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat</artifactId>
                <version>8.5.23</version>
            </artifactInstaller>
        </container>
        <configuration>
            <type>standalone</type>
        </configuration>
        <deployables>
            <!-- ... -->
        </deployables>
    </configuration>
</plugin>

此配置的完整错误消息是:

  

[错误]无法执行目标org.codehaus.cargo:cargo-maven2-plugin:1.6.5:项目domain.db.itest上的start(start-container):目标org.codehaus的执行启动容器。 cargo:cargo-maven2-plugin:1.6.5:启动失败:无法创建配置。参数没有注册配置(容器[id = [tomcat8x],type = [installed]],配置类型[standalone])。实际上,没有为此配置注册的有效类型。也许你拼错了? - &GT; [帮助1]

2 个答案:

答案 0 :(得分:0)

解决方案非常简单:我启用了离线模式。在没有离线模式的情况下,Cargo下载了cargo-core-container-tomcat工件,显然这个工件包含tomcat8x配置的定义。然后,容器启动成功!

我已经从Eclipse启动了Maven构建,因此我没有注意到已启用离线模式。我知道这种情况非常特殊,但也许其他人仍然可以从我的洞察中获益。我花了一段时间才解决,所以我在这里分享问题和解决方案。 (毕竟,鼓励这样做: - )

我从mailing list post获得了关键提示,由于Nexus存储库配置,未下载cargo-core-container-tomcat工件。

答案 1 :(得分:0)

此错误有时是由于cargo插件版本引起的。将您的货运插件更新到更高或最新版本。 就我而言,我从货物1.4.8更新为货物1.7.0。

检查此链接,可能会有所帮助: click here