我正在尝试以这种方式使用Maven插件将Pact文件发布到我的Pact-Broker(取自github Pact-Project):

<build>
<plugins>
<plugin>
<groupId>au.com.dius</groupId>
<artifactId>pact-jvm-provider-maven_2.12</artifactId>
<version>3.5.11</version>
<configuration>
<pactDirectory>${project.build.directory}/pacts</pactDirectory>
<pactBrokerUrl>mybrokerurl.de</pactBrokerUrl>
<projectVersion>${project.version}</projectVersion>
<trimSnapshot>true</trimSnapshot> <!-- Defaults to false -->
</configuration>
</plugin>
</plugins>
</build>


如果我尝试使用pact:publish执行Maven构建,则会出现以下错误:

Failed to execute goal au.com.dius:pact-jvm-provider-maven_2.12:3.5.11:publish (default-cli) on project myproject-test: Execution default-cli of goal au.com.dius:pact-jvm-provider-maven_2.12:3.5.11:publish failed: A required class was missing while executing au.com.dius:pact-jvm-provider-maven_2.12:3.5.11:publish: kotlin.TypeCastException


堆栈跟踪的顶部:

Error injecting: au.com.dius.pact.provider.maven.PactPublishMojo
java.lang.NoClassDefFoundError: kotlin.TypeCastException
    at java.lang.J9VMInternals.prepareClassImpl(Native Method)


使用JUnit-Tests创建契约文件可以很好地工作,因此我假设我在类路径中具有正确的依赖关系和所需的文件。

我想念什么?看来,kotlin.TypeCastExeption-Class在包中

<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-runtime</artifactId>


因此,在出现此错误后,我尝试将依赖项(版本1.2.0)添加到pom中-但这无济于事。

有人知道我的问题的解决方案吗?

最佳答案

我也遇到了同样的错误。我应用的解决方法是从本地磁盘删除Maven存储库并重建项目。它为我解决了错误。

关于java - 为什么mvn pact:publish抛出NoClassDefFoundError kotlin.TypeCastException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48439721/

10-11 02:32