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