我有一个奇怪的问题。
当我像这样构建我的 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,<useSystemClassLoader>false</useSystemClassLoader>
但仍然遇到问题。
我真的不明白NoClassDefFound
错误的原因......你能帮帮我吗?