Maven surefire在安装时失败,但在NoClassDefFoundError的包阶段没有

时间:2013-04-10 12:16:26

标签: maven surefire

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

1 个答案:

答案 0 :(得分:0)

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