何时去掉“-SNAPSHOT”

33次阅读
没有评论

问题描述

正在为一个使用Maven和Artifactory进行构建的Java项目制定Git工作流程。在develop和feature/分支上,版本号包含“-SNAPSHOT”。但是在release/或master分支上,不希望有“-SNAPSHOT”。用户想知道何时(以及如何)去掉它。
用户提供了一个部分工作流程的示例,但是没有处理去掉“SNAPSHOT”的情况。

                v1.0-snap    v1.0-snapfeature/a       * ---------> *                ^            |                |            |                |            vdevelop         *            * v1.0-snap                v1.0-snap    |                             |                             v        release/1.1        v1.0-snap * -----> *                                    v1.1-snap

用户提供了两个选项,但都可能是错误的。
选项1

                v1.0-snap    v1.0-snapfeature/a       * ---------> *                ^            |                |            |                |            v             v1.1-snapdevelop         *            * v1.0-snap  *                v1.0-snap    |           /                             |          /                             v         /release/1.1        v1.0-snap * -----> * v1.1-snap                                       \                                        \                                         \master                                    * --------> *                                          v1.1-snap   v1.1

选项2

                v1.0-snap    v1.0-snapfeature/a       * ---------> *                ^            |                |            |                |            v             v1.1-snapdevelop         *            * v1.0-snap  *                v1.0-snap    |           /                             |          /                             v         /release/1.1        v1.0-snap * -----> * ----- >* v1.1                                   v1.1-snap    \                                                 \                                                  \master                                             *                                                  v1.1

这两个选项对我来说都有些奇怪。
是否有关于这种流程的最佳实践?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

最佳实践

根据用户提供的信息,以下是一个最佳实践的工作流程:
1. 在feature/*develop分支上,使用类似18.08-SNAPSHOT的版本号。
2. 当准备开始发布时,创建一个发布分支(例如release/18.08),并将pom文件中的版本号更改为18.08
3. 同时,将develop分支的版本号升级为下一个开发版本,例如18.09-SNAPSHOT
4. 在此基础上,修复bug并完成发布,适当时将其合并到master分支。
请注意,如果需要在Artifactory中生成唯一的构建版本,可以在构建时(对于发布分支)使用Jenkins将pom文件中的版本号更改为类似18.08-326的形式(326是构建号)。这样做不会提交此更改,但构建并推送到Artifactory的构件将是唯一的(例如foobar-18.08-326.war)。
这个工作流程可以帮助您在不同分支上管理版本号,并确保在发布时生成唯一的构建版本。

正文完