使用SCM进行分支(Branch)和标签(Tag)管理

使用SCM进行分支(Branch)和标签(Tag)管理

一、场景模拟

假设我们现在Master的开发版本是1.1.8,按照版本管理规则应该是1.1.8-SNAPSHOT。

现在我们想要做如下事情:

  1. 发布稳定版1.1.8版本
  2. 将主干升级为1.2.0-SNAPSHOT
  3. 同时开启一个1.1.x的分支,用来修复1.1.8中的bug。
  4. 将1.1.8的稳定构件发布到私服。

二、创建分支

在发布1.1.8之前,我们创建1.1.x分支,运行如下命令:

mvn release:branch -DbranchName=1.1.x -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false

这个命令好像不能在idea中通过点击使用,直接在idea中执行没有问题。

这是maven-release-plugin的branch目标,

  • -DbranchName指定branch的名称为1.1.x,表示这里会有版本1.1.1, 1.1.2等等。
  • -DupdateBranchVersions=true的意思是在分支中更新版本。
  • -DupdateWorkingCopyVersions=false是指不更改当前工作目录(这里是master)的版本。

运行之后会有如下提示:

*What is the branch version for “TestEveryThing”? (com.devtao:test-everything) 1.1.9-SNAPSHOT: : *

分支版本号1.1.9-SNAPSHOT,是我们需要的,所以直接回车。

命令执行完成之后查看git仓库,可以看到除了master之外多了一个1.1.x的分支。

image

三、升级master

分支创建好了,就可以升级master了。

3.1 release:prepare

打标签,升级master至1.2.0-SNAPSHOT。

执行release:prepare命令,

  1. *What is the release version for “TestEveryThing”? (com.devtao:test-everything) 1.1.8: : *
    确定,我们需要发布的就是1.1.8版本。
  2. *What is SCM release tag or label for “TestEveryThing”? (com.devtao:test-everything) v1.1.8: : *
    若没有特殊说明,标签名称确定。
  3. *What is the new development version for “TestEveryThing”? (com.devtao:test-everything) 1.1.9-SNAPSHOT: : *
    新的开发版本号,这个地方需要我们输入:1.2.0-SNAPSHOT。

image

成功之后,我们们可以看到我们master的快照版本号已经变更为1.2.0-SNAPSHOT:

image

git上已创建tag:

image

3.2 release:perform

构建并发布到私服,执行完后,可以在nexus的私服仓中看到新发布的版本。

image

大T笔记所有文章均为本人原创,转载请您注明来源,并留下原文链接地址,是对我的尊重,也是对知识的尊重,谢谢!
大T笔记 » 使用SCM进行分支(Branch)和标签(Tag)管理

大T笔记-我的个人互联网创业和自由职业之路

关于我 我的百宝箱
大T笔记-专注个人互联网创业和自由职业