【问题标题】:How to publish the artifacts at the end using maven-release plugin最后如何使用 maven-release 插件发布工件
【发布时间】:2018-12-04 17:07:40
【问题描述】:

我有一个多模块 Maven 项目。我正在使用 maven-release 插件将工件发布到 maven 存储库。我正在使用以下命令来完成上述任务。

mvn -B clean release:clean release:prepare release:perform -DautoVersionSubmodules=true '-DscmCommentPrefix=[maven-release-plugin]'

在其中一个子模块中,我有一个单元测试失败,但我仍然看到其余模块已发布到 maven repo,但失败的模块除外。

只有当所有模块的单元测试都通过时,有没有办法发布所有子模块?

以下是我在 Parent pom.xml 中的 maven pom 配置。

<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
              <tagNameFormat>v@{project.version}</tagNameFormat>
              <localCheckout>true</localCheckout>
              <autoVersionSubmodules>true</autoVersionSubmodules>
              <useReleaseProfile>false</useReleaseProfile>
              <localCheckout>true</localCheckout>
              <pushChanges>true</pushChanges>
              <mavenExecutorId>forked-path</mavenExecutorId>
              <preparationGoals>clean deploy -U -B</preparationGoals>
              <goals>clean install</goals>
              <arguments>-Prelease</arguments>
          </configuration>
      </plugin>

【问题讨论】:

    标签: maven-release-plugin multi-module maven-deploy-plugin


    【解决方案1】:

    maven-deploy-plugin 有一个命令行选项“-DdeployAtEnd=true”可以完成此操作。但是因为 maven-release-plugin 在它自己的 Maven 实例中运行 deploy 命令,所以你必须使用 maven-release-plugin -Darguments 选项将它传递到这个实例中。

    总体而言,您的命令将如下所示。

    mvn -B clean release:clean release:prepare -Darguments=\"-DdeployAtEnd=true\" release:perform -DautoVersionSubmodules=true '-DscmCommentPrefix=[maven-release-plugin]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多