Maven 版本控制最佳实践

什么是更改 Maven 项目版本的最佳方式,发布这个版本,然后返回到 *-SNAPSHOT开发。

目前我正在做以下工作:

  • pom.xml中检索当前版本(最有可能使用 SNAPSHOT)
  • 增量版本(mvn -DnewVersion=<something> versions:set) ,遵守问题 用于补丁的 Maven 工件版本中描述的规则
  • mvn:install送去回收
  • 重命名版本再次添加 SNAPSHOT后缀。
  • 提交更改(使用某些版本控制系统)

我有一种强烈的感觉,我正在做一些错误的和/或效率低下的事情。

84857 次浏览

您应该使用 Maven-release-plugin来释放您的工件。所有的版本都会由发布插件自动增加。如果从1.0.3-SNAPSHOT 转换为1.1.0-SNAPSHOT,则可能会出现异常。 与 Maven 一起开发的时间表是:

1.0.0-SNAPSHOT
1.0.0
1.0.1-SNAPSHOT
1.0.1
1.0.2-SNAPSHOT
1.0.2
..

要从 SNAPSHOT 到发布版本,你应该使用 maven 发布插件,你只需使用以下方法就可以发布一个工件:

第一步:

mvn release:prepare

最后一步:

mvn release:perform

如果你想接受默认值,你可以简单的添加 -B,比如:

mvn -B release:prepare

或者你可以把这些步骤合并成一个单独的步骤:

mvn -B release:prepare release:perform

以上内容也可以在 CI 解决方案中使用。

使用 mvn install 只是为了将构件安装到本地存储库中。如果你使用的是真正的仓库管理器(我可以推荐) ,你必须使用:

mvn deploy

使用发行版插件的一个要求是在您的 pom 中配置 scm 区域(我希望您使用的是版本控制?).

如果您希望对发布阶段有更多的控制,maven-release-plugin (mrp)将不会对您有太大帮助。

在这种情况下,我有 修改版本-maven-plugin能够 增加版本,并添加/删除 SNAPSHOT 后缀

由于这些新特性,您可以编写与 MRP 相同的脚本,但是您可以完全控制每个步骤。

例如,mrp 提交修改过的版本 之前,它实际上尝试构建它。如果构建失败,则必须恢复该提交,如果是 SVN,则必须执行另一个恢复提交。

注意: 我不是增量函数的原作者,我已经采用了它 自动增量-版本-插件,如 github 页面所述。