如何使用maven构建jar,忽略测试结果?

时间:2010-07-29 17:57:46

标签: java testing maven-2 jar

当我运行测试时他们失败了,但我需要运行它们来获取一些对我的jar非常重要的.class文件。

默认情况下,当测试结果失败时,jar不构建,我可以在pom.xml中添加一个忽略它的设置,所以我可以构建jar忽略测试结果吗?

我读过一些关于“Maven Surefire插件”的内容,但我不知道如何使用它......

6 个答案:

答案 0 :(得分:151)

有关详细信息,请参阅surefire:test,但最有用的属性是:

-Dmaven.test.failure.ignore = true (或 -DtestFailureIgnore = true ) - 将忽略测试执行期间发生的任何失败

-Dmaven.test.error.ignore = true (不建议使用) - 将忽略测试执行期间发生的任何错误

-DskipTests - 会编译测试类但完全跳过测试执行

-Dmaven.test.skip = true - 甚至不会编译测试

我相信在您希望编译测试类的情况下,但由于任何测试错误而导致构建失败,并且仍然创建jar

您应该使用第一个选项来忽略在构建完成后仍可以查看的任何测试失败。

答案 1 :(得分:39)

mvn -Dmaven.test.skip=true package跳过了万无一失的测试魔法。

忽略测试失败并让maven停止,你可以将它添加到pom.xml的部分:

 <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <configuration>
     <testFailureIgnore>true</testFailureIgnore>
   </configuration>
 </plugin>

答案 2 :(得分:24)

解决方案是:

mvn -fn clean install

执行mvn --help以获取高级选项

以下是-fn

的摘录
 -fn,--fail-never         NEVER fail the build, regardless
                          of project result

答案 3 :(得分:17)

<properties>
<maven.test.skip>true</maven.test.skip>
<maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>

http://jira.codehaus.org/browse/SUREFIRE-319

或者从命令行

http://maven.apache.org/maven-1.x/plugins/test/properties.html

  

maven.test.error.ignore是设置   这样可以忽略错误   测试。不推荐使用它,   但有时候很方便

答案 4 :(得分:3)

使用-DskipTests = true而不是-Dmaven.test.skip = true以跳过测试但编译它们。

使用-Dmaven.test.failure.ignore = true也可以,但效果不是很好。

答案 5 :(得分:-1)

使用maven选项-Dmaven.test.skip = true

E.g。 mvn包-Dmaven.test.skip = true