maven编译【-Dmaven.test.skip=true和-DskipTests=true的区别】

2024-06-15 1767阅读

1、背景

我在执行maven编译时,遇到下面情况:

1、当执行命令为下面:

mvn clean compile package install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true -Drat.numUnapprovedLicenses=600 -DskipTests=true -pl=hdfs-agent -Pall -Pbuild-repo

发现还是会编译测试模块的代码,如下图:

maven编译【-Dmaven.test.skip=true和-DskipTests=true的区别】

2、而变成下面命令时,便不会编译测试模块的代码了

mvn clean compile package install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true -Drat.numUnapprovedLicenses=600 -Dmaven.test.skip=true -pl=hdfs-agent -Pall -Pbuild-repo

2、-Dmaven.test.skip=true和-DskipTests=true的区别

-Dmaven.test.skip=true 和 -DskipTests 都是用于跳过测试的 Maven 参数,但它们有细微的区别

(1)-Dmaven.test.skip=true
  • 跳过测试编译和执行:使用这个参数,Maven 会完全跳过测试的编译和执行过程。这意味着测试代码不会被编译,也不会运行任何测试用例。
  • 影响范围:更为全局。它不仅跳过 Surefire 插件(用于单元测试)的执行,还会跳过其他可能运行测试的插件(如 Failsafe 插件,用于集成测试)。

    示例命令:

    mvn clean package -Dmaven.test.skip=true
    
    (2)-DskipTests
    • 仅跳过测试执行:使用这个参数,Maven 仍然会编译测试代码,但不会运行测试用例。测试类会被编译并包含在构建输出中,但不会被执行。
    • 影响范围:主要影响 Surefire 和 Failsafe 插件的执行。如果你的构建流程中有其他插件依赖于测试代码的编译,使用这个选项会比较安全,因为测试代码仍然会被编译。

      示例命令:

      mvn clean package -DskipTests
      
      (3)详细对比
      1. 测试代码编译:

        • -Dmaven.test.skip=true:测试代码不会被编译。
        • -DskipTests:测试代码会被编译,但不会被执行。
        • 插件影响:

          • -Dmaven.test.skip=true:会影响所有插件,不仅仅是 Surefire 和 Failsafe 插件。
          • -DskipTests:主要影响 Surefire 和 Failsafe 插件的执行,但测试代码仍会被编译。
          • 适用场景:

            • -Dmaven.test.skip=true:在你确实不需要测试代码的情况下使用,例如快速构建生产版本。
            • -DskipTests:在你需要测试代码编译但不需要执行测试的情况下使用,例如开发阶段需要快速构建但仍然希望确保测试代码编译通过。

      3、结论

      • 快速跳过所有测试相关的步骤:使用 -Dmaven.test.skip=true。
      • 仅跳过测试执行但保留测试代码编译:使用 -DskipTests。

        希望这些解释能够帮大家更好地理解这两个参数的区别,并根据需求选择合适的选项。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]