“-DskipTests”和“-Dmaven.test.skip=true”的区别是什么?

64
我正在尝试构建hive-0.13。
使用“-Dmaven.test.skip=true”时,它不会构建测试jar包,但会检查测试依赖项。
使用“-DskipTests”时,它不会构建测试jar包,也不会检查测试依赖项。
“-DskipTests”和“-Dmaven.test.skip=true”之间有什么区别?
2个回答

108

Maven文档:

-DskipTests 编译测试,但跳过运行

-Dmaven.test.skip=true 跳过编译测试并且不运行

此外,这个可能很重要

maven.test.skip被Surefire、Failsafe和Compiler插件所支持


谢谢,我也在这里找到了:http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html - Stanley Shi
2
Stanley,在你的评论中,正确的URL是http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html。 - manavi

6
这里介绍了第三种相关选项:https://dev59.com/lmEh5IYBdhLWcg3w3mqK#21933970 如果使用“maven.test.skip.exec=true”,测试将被编译但不会被执行。
因此,Maven 的完整测试选项如下:
-DskipTests => 测试会被编译但不会被执行。 -Dmaven.test.skip.exec = true => 测试会被编译但不会被执行(与-DskipTests完全相同)。 -Dmaven.test.skip = true => 不会编译或执行测试。

3
前两者效果相同,对吗?换句话说,“跳过运行”等同于“未执行”,是吗?这是否意味着它们设置了完全相同的属性等,因此它们真的完全可以互换? - MarnixKlooster ReinstateMonica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接