如何基于 Git 标签设置 Jenkins 构建的版本?
我目前正在做什么:
- 使用 Maven 版本插件从 Jenkins 内部版本号设置当前构建的发布版本,例如 newVersion=1.1.$BUILD_NUMBER
- 使用 Maven 构建和部署项目 使用 Git
- 发布服务器使用内部版本号标记 Git 中的构建,例如 MYPROJECT_BUILD-1.1.$BUILD_NUMBER
做什么:我想从 Git 标签中提取最后一个内部版本号并递增它,而不是使用 Jenkins BUILD_NUMBER
- 从 Git 获取与给定模式匹配的最新标记,例如 MYPROJECT_BUILD-.*
- 从标记中提取内部版本号并将其递增
- 使用 Maven 构建和部署项目 使用 Git
- 发布服务器使用递增的内部版本号在 Git 中标记内部版本,例如 MYPROJECT_BUILD-1.1.124
实现这一目标的最佳方法是什么?
Git 并不真正了解 Maven。Git 应该驱动编号有什么具体原因吗?
恕我直言,Maven是更好的选择。它知道你的源代码管理(如果你已正确配置<scm>
),并知道版本是什么,以及它是发布还是快照。
通过Maven + Git + Jenkins的组合,我们对发布插件非常满意:它拍摄您的快照,执行Maven发布并在Git中标记它,并将更改提交到下一个快照(您定义该版本号)。