我正在尝试使用cargo-maven2-plugin和Tomcat 8运行集成测试,我希望Maven构建可以为我启动容器,因此我已经将start和stop目标配置为文档化的这里。问题是,不管我作为containerId输入了什么,start目标总是失败,因为有一条消息说没有注册的配置。错误消息总是以
实际上,没有为此配置注册的有效类型。也许你拼错了?
我尝试过各种配置,包括我在各种教程中找到的配置,以及使用早期Tomcat版本的配置,但是没有任何帮助。错误消息总是相同的。
本文中关于堆栈溢出的其他文章建议更新装载版本,但这并不适用于我的问题:我已经使用了最新版本 (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:start上执行目标org.codehaus.cargo:cargo-maven2-plugin:1.6.5:start (启动容器):执行开始-目标org.codehaus.cargo:cargo-maven2-plugin:1.6.5:start容器失败:无法创建配置。参数没有注册配置(容器[id = tomcat8x,type = installed],配置类型独立)。实际上,没有为此配置注册的有效类型。也许你拼错了?->帮助1
发布于 2017-11-21 12:20:39
解决方案非常简单:我启用了脱机模式。在没有脱机模式的情况下,Cargo下载了cargo-core-container-tomcat工件,显然这个工件包含了tomcat8x配置的定义。然后,容器启动就成功了!
我已经从Eclipse启动了Maven构建,所以我没有注意到离线模式已经启用。我知道这种情况是非常特别的,但也许其他人仍然从我的洞察力中受益。它花了我一段时间来解决,所以我在这里分享问题和解决方案。(毕竟这是鼓励的:-)
我从邮寄名单邮寄获得了关键提示,其中cargo-core-container-tomcat工件由于Nexus存储库配置而没有下载。
发布于 2018-11-20 04:38:13
这个错误有时是由于货物插件版本。更新您的货物插件到更高或最新的版本。在我的例子中,我从货运1.4.8更新到了1.7.0。
检查此链接,其可能帮助:单击此处
https://stackoverflow.com/questions/47413011
复制相似问题