如何在 Maven 发布插件中设置 SCM 标签?

Posted

技术标签:

【中文标题】如何在 Maven 发布插件中设置 SCM 标签?【英文标题】:How do I set the SCM tag in the Maven Release Plugin? 【发布时间】:2020-03-24 18:52:15 【问题描述】:

当我运行 release:prepare Maven 目标时,它会询问我三次版本:发布、发布、下一个快照。

是否可以强制第二个总是像第一个一样?

What is the release version for "app1"? (org.dep1:app1) 1.0.9: : 
What is the SCM release tag or label for "app1"? (org.dep1:app1) 1.0.9: : 
What is the new development version for "app1"? (org.dep1:app1) 1.0.10-SNAPSHOT: : 

我希望 git 标签始终与版本号相同,最好跳过第二个问题。

这是我的 Maven 发布插件配置:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>3.0.0-M1</version>
    <configuration>
      <tagNameFormat>@project.version</tagNameFormat>
      <autoVersionSubmodules>true</autoVersionSubmodules>
    </configuration>
  </plugin>

【问题讨论】:

你可以使用mvn -B release:prepare release:perform... @khmarbaise 批处理选项可能对第一个问题有用,但最后一个可能不同。在这种情况下,它可以像1.1.0-SNAPSHOT 一样响应。但是,默认值可能仍然很好,开发人员可以稍后更改它。谢谢 @khmarbaise 在仔细考虑之后,我认为您的解决方案正是我真正需要的。如果我需要不同的 SNAPSHOT 版本,我可以使用 mvn versions:set -DnewVersion=1.2.0-SNAPSHOT 更改它(包括所有五个子模块)。请添加答案,以便我接受。 【参考方案1】:

最简单的步骤是使用批处理模式,可以这样做:

mvn -B release:prepare release:perform

这将使用默认值而不要求任何内容。

如果你想设置releaseVersion,你可以通过:

mvn -B release:prepare release:perform -DreleaseVersion=2.0.0

要控制将使用哪个development version,如果您不喜欢默认设置,可以通过添加-D developmentVersion=2.1.0-SNAPSHOT 进行设置。

【讨论】:

以上是关于如何在 Maven 发布插件中设置 SCM 标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Maven 发布插件上禁用标签创建

Maven 发布插件在发布标签下添加主干文件夹以进行发布:准备目标

在tomcat7 maven插件中设置ENV变量

Maven 版本/scm 标签/Plexus DirectoryScanner 中的无限递归错误?

如何在不创建 scm 标签的情况下进行 Maven 发布?

如何在maven pom.xml文件中设置Java编译器版本