以非交互方式更新Maven项目版本以发布版本

时间:2016-07-06 12:56:52

标签: java maven release maven-release-plugin maven-versions-plugin

我想将我的Maven项目的版本更新为与当前快照版本对应的发行版本。例如。 1.2-SNAPSHOT应该成为1.2。换句话说,我只想从版本中删除-SNAPSHOT后缀。我想以非交互方式执行此操作,以便我的CI工具可以执行此操作。

我知道可以使用maven-release-pluginmaven-versions-plugin以及可能的其他插件来完成此操作。我偏好maven-versions-plugin因为它很好地处理聚合器项目。

两个插件都提示输入新版本,但允许您在命令行上提供该版本。如何提供相对于当前快照版本的新版本?如上所述,我只想删除-SNAPSHOT部分。

所以要明确:

  • 我只想更新项目的版本,而不是发布插件提供的所有其他内容。
  • 我不想指定版本号,只是将版本更新为"无论-SNAPSHOT"之前是什么,

3 个答案:

答案 0 :(得分:0)

maven-release-plugin完全符合您的要求 - 并且可以在非交互模式下运行以执行以下步骤:

构建项目

标记代码

将更改推送到SCM

将版本修改为第一版

再次构建

将版本化的jar / war / ear / zip推送到您选择的存储库

标记并按

将版本号设置为下一个快照版本

全部自动完成。

答案 1 :(得分:0)

使用CI工具,您应该能够直接在POM中编辑标签。

这是我的一个小项目的片段。

<modelVersion>4.0.0</modelVersion>
<groupId>com.organization</groupId>
<artifactId>pdf_tiff_conversion</artifactId>
<version>1.0-SNAPSHOT</version> // Edit this tag
<packaging>jar</packaging>

答案 2 :(得分:0)

使用versions-maven-plugin:

mvn org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=1.2 -DgenerateBackupPoms=false

这不幸地迫使您提供版本号(1.2),它不会剥离-SNAPSHOT,但它是一个比发布插件更简单的解决方案。