突然间,我所有的 Mule Maven 项目在运行 mvn clean test 时都抛出了这个错误:
java.lang.NoClassDefFoundError: org.mule.tck.junit4.AbstractMuleTestCase.(AbstractMuleTestCase.java:71) 处的 org/apache/commons/cli/ParseException
我可以为它添加一个依赖项,但我真的不必这样做。
我的代码没有任何变化。我正在使用骡子 3.4
突然间,我所有的 Mule Maven 项目在运行 mvn clean test 时都抛出了这个错误:
java.lang.NoClassDefFoundError: org.mule.tck.junit4.AbstractMuleTestCase.(AbstractMuleTestCase.java:71) 处的 org/apache/commons/cli/ParseException
我可以为它添加一个依赖项,但我真的不必这样做。
我的代码没有任何变化。我正在使用骡子 3.4
您需要commons-cli.jar
在您的类路径中,将此 Maven 依赖项添加到您的 pom
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.1</version>
</dependency>
commons-cli 1.1
更新:添加依赖项后,OP 的代码已修复。
问题描述和解决方法:http ://ricston.com/blog/mule-classnotfoundexception-tests-commons-cli/
简而言之,您可能有一个名为 commons-cli-1.2 的错误 JAR。删除它并重新运行您的 Maven 构建。在那之后你应该很好。
如果 POM 中的 fologin 依赖项可用。它应该工作正常。
<dependency>
<groupId>org.mule.tests</groupId>
<artifactId>mule-tests-functional</artifactId>
<version>3.4.0</version>
<scope>test</scope>
</dependency>
然后使用 mvn clean compile 更新依赖。
mvn eclipse:clean eclipse:eclipse clean compile
希望这可以帮助。
Maven 行为在一次运行到下一次运行中是不可重现的:除了一般的网络问题和存储库损坏问题之外,任何内容都可能随时自动更新,从而中断执行的任何步骤,即使您没有更改任何文件.
您关于某些 Apache Commons 库中的类的错误消息表明,Mule 应该使用的库版本(具有 ParseException 类的库)与其实际加载的库版本(没有该类并导致异常)之间存在分歧。
可能的版本不匹配情况包括更新有缺陷的新版 Mule(可能只是更新到错误或损坏的 POM),它指定了不兼容的库版本,或者由于添加或更新与 Mule 无关的内容。
分析建议: