【问题标题】:How to completely skip unit tests and integration tests during maven release prepare and perform with maven release plugin如何在 Maven 发布期间完全跳过单元测试和集成测试准备并使用 Maven 发布插件执行
【发布时间】:2020-11-09 23:11:12
【问题描述】:

我已经设置了一些自动化来使用 maven 发布插件执行 maven 语义版本。因此,我正在使用以下内容:-

mvn -B clean release:clean -DpreparationGoals=clean release:prepare -Darguments="-DskipTests" -Darguments="-DskipITs" -Darguments="-Dmaven.javadoc.skip=true" release:perform -Dusername=$GIT_USERNAME -Dpassword=$GIT_PASSWORD

一切都很好,除了在执行阶段,我仍然在我们的詹金斯日志中看到正在执行的测试。 我想知道在此 maven 版本准备和执行期间跳过任何类型测试的最佳方法是什么,而无需对现有 pom.xml 进行任何更改,因为我想通过作为 CLI 参数传递的 maven 参数来强制执行这一点,以便我们不必使用此自动化更新 1000 个 pom 在这里的任何帮助或建议将一如既往地感激不尽。

【问题讨论】:

    标签: maven maven-release-plugin


    【解决方案1】:

    您可以使用arguments 属性来执行此操作。引用可能非常重要。

    例子:

    mvn release:prepare ... -Darguments="-Dmaven.test.skip=true -DsomethingElse=whatever"
    

    在这里,我将maven.test.skip 属性(由maven-surefire-plugin's test goal 定义)传递给由maven-release-pluginprepare 目标运行的mvn 的执行。

    【讨论】:

    • 感谢莱尔德。所以如果我必须在准备和执行阶段跳过测试以及单元和集成,我应该简单地使用以下内容:- mvn -B clean release:clean -DpreparationGoals=clean release:prepare -Darguments="-Dmaven.test .skip=true -DskipITs" 发布:执行
    • (为了记录和那些追随你的人:我强烈建议不要禁用测试。我也只评论命令行的arguments 部分。)是的,我认为这适合你用例。请注意,maven.test.skip 已记录在案以排除测试编译。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多