准备发布

默认情况下,准备发布会经历以下发布阶段:

  • 检查源中没有未提交的更改
  • 检查是否没有 SNAPSHOT 依赖项
  • 将 POM 中的版本从 x-SNAPSHOT 更改为新版本(系统将提示您选择要使用的版本)
  • 转换 POM 中的 SCM 信息以包含标签的最终目的地
  • 针对修改后的 POM 运行项目测试以确认一切正常
  • 提交修改后的 POM
  • 用版本名称标记 SCM 中的代码(将提示输入)
  • 将 POM 中的版本添加到新值 y-SNAPSHOT(也会提示输入这些值)
  • 提交修改后的 POM

要准备发布,请执行以下命令:

mvn release:prepare

注意:如果发生错误,或者进程被取消,那么再次运行此命令将从最后一个停止的地方开始。

如果您想重新开始,请使用:

mvn release:prepare -Dresume=false

或者,您可以使用:

mvn release:clean release:prepare

注意:如果对源文件进行了任何更改,则可能需要在重新启动准备过程之前将其还原。您可以使用release:rollback让插件为您执行此操作。

多模块项目

系统将提示您输入项目每个模块的版本号。如果您希望每个模块都获得与父 POM 相同的版本,则可以将选项autoVersionSubmodules设置为true。现在将只询问一次发布版本和下一个开发版本。

生成发布 POM

可以为每个项目生成一个release-pom.xml文件,其中包含在发布时使用的完全解析的项目作为以后的记录。从 2.0 版本开始,这需要调用一个替代目标:

mvn release:prepare-with-pom

此目标等效于release:prepare目标,只是它需要项目的先前版本才能正确填充release-pom.xml文件。

覆盖默认标签名称格式

默认情况下,如果您不指定标签名称,则会建议使用artifactId -版本的默认标签名称(如果以非交互方式运行)。

您可以通过传递tag属性从命令行指定要使用的确切标签名称,但如果您想要生成标签名称,但只需更改默认模式,您可以使用tagNameFormat配置选项。

例如,要将标签名称默认为带有v前缀的版本号,您可以像这样配置您的 pom:

<project>
  [...]
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>3.0.0-M5</version>
        <configuration>
          <tagNameFormat>v@{project.version}</tagNameFormat>
        </configuration>
      </plugin>
      [...]
    </plugins>
    [...]
  </build>
  [...]
</project>

tagNameFormat 使用@{}作为分隔符,以确保默认的 Maven 属性插值不会替换版本转换发生之前的值。

支持以下属性:

  • project.groupId对应于项目的 groupId。
  • project.artifactId对应于项目的 artifactId。
  • project.version对应于项目的发布版本。

项目。前缀是可选的,可以省略。