我有一个问题。
当我构建我的maven项目时:
mvn clean package
它编译并成功运行单元测试但是当我这样做时
mvn clean install
它仍在编译,报告构建成功,但显示了这个奇怪的错误:
java.lang.NoClassDefFoundError: com/foo/BarClass
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at com.foo.BarTest.shouldTestSomething(BarTest.java:35)
我有maven 3.0.4,surefire-plugin-version 2.14,junit 4.11
以下是我pom.xml
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
</plugin>
</pluginManagement>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
我已经玩过改变surefire / junit版本以及surefire&#39; <useSystemClassLoader>false</useSystemClassLoader>
,但仍然遇到了问题。
我真的不明白NoClassDefFound
错误的原因......
你能帮我么?
答案 0 :(得分:0)
所以最后我解决了这个棘手的问题:
我也有cobertura
插件运行(就像任何高质量的软件项目都有:),它会对类进行检测,从而触发重新编译,从而重新运行单元测试,因此奇怪NoClassDefError
嗯,多么忙碌的一天!