首页 > 解决方案 > 如何管理 git 存储库中的 pom.xml 版本?

问题描述

我正在与许多开发人员一起开发一个大型 Java 项目。我们使用 Gitlab 作为存储库。现在每个提交合并请求的开发人员都必须在提交之前更新 pom.xml 中的项目版本。当两个开发人员在不同的事情上工作并同时制作两个不相关的 MR 时,就会出现问题,这两个 MR 都具有相同的更新版本号。第一次MR合并正确,第二次合并显示没有冲突(pom.xml中的版本号相同),所以也合并了。我们现在有两个具有相同版本号的 MR。将构建上传到工件时会导致问题。

如何解决这个问题?

我在想每个开发人员可能会在版本号上附加一些 ID(例如开发人员的首字母缩写),从而在上述情况下强制发生冲突。或者也许使用挂钩来自动更新 pom.xml 版本,这样开发人员就不必这样做了。

为每个 MR 更新项目版本号的正确方法是什么?

标签: gitgitlabpom.xml

解决方案


您似乎在考虑团队中的版本控制。我以前见过这样的计划——人们一直在受苦。你不能用 Git 解决这个问题,所以停止更改 Maven 的版本 - 而是改变你上传工件的方式。

如果您尝试在您的公司中实施 CD - 版本控制的一种好方法是使用已解析的SNAPSHOT。只需保留 xyz-SNAPSHOT 版本,不要更改 xyz 当 Maven 上传工件时,它会创建一个时间戳+数字版本,可以唯一标识,例如1.1.0-20190830.184736-6123.

注意:默认情况下,每个模块都有自己的时间戳。要在所有模块中使用相同的版本,您可以手动生成它并使用mvn versions:set.


推荐阅读