在使用git flow发布时,我应该如何更新pom.xml中的版本?
在maven项目中,项目的版本包含在pom.xml文件的属性中。在git flow模型中创建新版本时,我需要输入版本号。解释如何完成此操作(没有maven):在使用git flow发布时,我应该如何更新pom.xml中的版本?,git,maven,versioning,git-flow,Git,Maven,Versioning,Git Flow,在maven项目中,项目的版本包含在pom.xml文件的属性中。在git flow模型中创建新版本时,我需要输入版本号。解释如何完成此操作(没有maven): 创建发布分支 更改版本号并提交 合并发布分支以开发和掌握 此外,它还说: 正是在发布分支的开始,即将发布的版本才被分配了一个版本号,而不是更早的版本号。在此之前,开发分支反映了“下一个版本”的更改,但在发布分支启动之前,不清楚“下一个版本”最终会变成0.3还是1.0。这个决定是在发布分支开始时做出的,并根据项目关于版本号碰撞的规则执行 我
1.1-SNAPSHOT
。现在我们在发布分支上将其更改为简单的1.1
,并将其合并到master。好的但我们也应该将该分支合并回去进行开发,为此,我们需要调整版本,例如1.2-SNAPSHOT
。也许我们不应该在发布分支上这样做,因为提交不应该是发布的一部分。实际上,我们可能应该在分支开发之后立即进行此更改,因为开发上的所有未来提交都将用于下一个版本当我在谷歌上搜索这个问题时,我发现了一些关于maven插件的文章,这些插件可以自动化这个过程,这可能很有趣,但是,这个问题实际上是关于git图应该是什么样子,以及bump提交的版本应该在哪里,而不是我如何使用maven插件实现自动化。请记住,git是为Linux内核开发的,它有自己的版本规则 对于Maven,您应该创建一个发布分支,用于获取下一版本的快照版本。此更改应该是一次提交(即仅更改
pom.xml
中的版本号)。合并时,签出master
并使用git merge--strategy=ours
--strategy=ours
的意思是:通过说“master中的所有内容都已与发布分支正确合并”来进行合并;没有对master进行任何更改。之后,Git将把两个分支视为合并(即没有更改),尽管两个分支中的版本号不同
为了避免在使用Maven构建master
时出现各种问题,请使用奇数或非常高的版本号,该版本号不会像99.DEV-SNAPSHOT
那样更改
发布时,从发布分支中的版本中删除-SNAPSHOT
,然后提交。然后,签出master并再次与--strategy=ours
合并
注意:如果执行此操作,则不得在发布分支上进行任何其他更改,但必须更改版本。任何其他修补程序都将丢失!您只能选择它们。对于Maven,您不应该手动更改版本号 您应该将“scm”信息添加到pom中,以便让Maven提交并直接推动版本更改 然后,使用“发布插件”。它将为你做这项工作。假设当前版本为“1.1-SNAPSHOT”,则“release:perform”maven任务将:
- 将版本更改为1.1、提交、标记此版本并推送它
- 再次将版本更改为1.2-SNAPSHOT(或1.1.1-SNAPSHOT、2.0-SNAPSHOT…您可以选择下一个版本),提交并推送它
* 2345678 - Normal developpement commit (on branch 1.2-SNAPHOT).
* 5678901 - [maven-release-plugin] prepare for next development iteration
* 8901234 - (tag: 1.1) [maven-release-plugin] prepare release 1.1
* 1234567 - Normal developpement commit (on branch 1.1-SNAPHOT).
注1:在发布时,您必须提供下一个版本(本例中为1.2)。如果你改变主意,你可以以后再改变。Maven“version:set version”插件允许您重新分配所有项目层次结构的版本。您只需在下一版本发布之前提交此版本更改
注2:在发布时,您还可以更改发布版本。即使当前版本是1.1-SNAPSHOT,您也可以确定该版本是2.0版本,下一个开发版本是2.1-SNAPSHOT。对于正常版本,只需在合并发布分支后执行快照版本通气:
develope
,并从版本中删除快照master
develope
develope
上的版本更改为下一个快照版本master
和develope
master
分支之外创建它的。对于这个场景,有一个解决方案,下面是一个使用原始git命令的示例
示例:您在master
上有1.0.0
,并且希望创建1.0.1
修补程序版本。您的开发已经在1.1.0-SNAPSHOT
git签出主机
git签出-b hotfix/1.0.1
mvn版本:set-DnewVersion=1.0.1
git提交-a-m“修补程序1.0.1版”
git签出主机
git合并修补程序/1.0.1