我正在尝试使用cargo-maven2-plugin
和Tomcat 8运行集成测试。我希望Maven构建为我启动容器,因此我配置了start
和stop
记录的目标here。问题在于,无论我输入的内容为containerId
,start
目标始终会失败并显示没有已注册配置的消息。错误消息始终以
实际上,没有为此配置注册的有效类型。也许你拼错了吗?
我尝试了各种配置,包括我在各种教程中找到的配置,以及使用旧版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]
答案 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