0

我有一个奇怪的问题。
当我像这样构建我的 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错误的原因......你能帮帮我吗?

4

1 回答 1

0

所以最后我解决了这个混乱的问题:
我还cobertura运行了插件(就像任何高质量的软件项目一样:),它检测了类从而触发了重新编译,因此重新运行了单元测试,因此奇怪的NoClassDefError
Huh,多么忙碌的一天!

于 2013-04-10T15:03:55.413 回答