gpt4 book ai didi

svn - SVN 中的 Maven 发布周期和版本控制

转载 作者:行者123 更新时间:2023-12-02 22:35:09 25 4
gpt4 key购买 nike

我正在尝试查找有关版本号以及与 Maven 和 SVN 分支/合并的可靠信息。

我的项目使用 Maven 版本规则:

<major>.<minor>.<revision>([ -<qualififer> ] | [ -<build> ])

我的 Maven 发布如下,主干和发布标签中有快照

trunk:    1.0.0-SNAPSHOT

tag: 1.0.0

trunk: 1.0.1-SNAPSHOT

tag: 1.0.1

etc....

问题:

  1. 如果我创建一个分支(从发布标签)来修复错误。当涉及到发布这个补丁时,maven 发布插件给它多少号?它得到什么标签名称?关于将更改合并回主干有什么建议吗?

  2. 更改 Maven 版本号的标准方法是什么? Major、Minor 和内部版本号何时递增?

是否有任何书籍或文档可以阐明推荐的方法?

最佳答案

引自 Better Builds with Maven - Mergere Library Press。

第 3.6 节。解决依赖冲突和使用版本范围:

enter image description here

If I create a branch (from a release tag) in order to do a bugfix. When it comes to releasing this patch what number does the maven release plugin give it? What tag name does it get? Any recommendation on merging changes back into trunk?

当执行 mvn release:prepare 时,如果您不喜欢 Maven 生成的版本,您将有机会填写特定的版本名称(发布版本、标记版本、下一个主干版本等) .在某些特殊情况下,例如从分支构建补丁发布,我们通常会自己设置版本名称:

  • 如果更改不需要合并回主干(从分支构建发布),请使用 1.0.1-1 或 1.0.1-patch-1。

  • 如果更改需要合并回主干(从主干构建发布),对于主要更改,使用 2.0.0,对于次要更改,使用 1.1.0,对于错误修复,使用 1.0.2。

What is the standard approach to changing the Maven version numbers? When do the Major, Minor and build numbers get incremented?

见上图。

更新:

Yes this is another confusing part of maven versioning. For me the diagram contradicts whats written below it: It states the build number is incremented after releasing a patch. But I thought that was what the Bug fix part of the version string is for as shown in diagram??

maven 版本范围的目的是覆盖尽可能多的用例。您打算如何使用它完全取决于您。这里的重点是哪个更合理。正如我在原帖中所述,它用于某些特殊情况,例如您的团队需要同时维护两个工作流(主干上的主工作流和分支上的第二个工作流)。

以这个场景为例,经过长时间的工作,您构建并部署了1.0.6版本到您的客户端(在SVN中,1.0.6被标记并且trunk递增到1.0.7-SHAPSHOT,意味着next预计发布版本为 1.0.7),并在 trunk 上持续开发。然后两周后,1.0.6 版本报告了一个错误,需要紧急修复,所以你从标签 1.0.6 创建一个分支,修复错误并将分支合并回主干。现在您需要为客户端构建一个补丁版本。由于自上次构建(两周前)以来主干已经发生了很多变化,我们必须从分支构建这个补丁版本。当然,您可以在此补丁版本中使用任何您喜欢的版本(即 1.0.7),因此需要手动更改主干中的版本(从 1.0.7-SHAPSHOT 到 1.0.8-SNAPSHOT)。但是,我更愿意使用 1.0.6-patch-1 来发布这个补丁。

图表中没有任何矛盾,构建号在这种情况下是完美的,这就是它的意思“而构建号是发布后的增量,以指示修补的构建。”它给你第二次增加针对已发布版本(1.0.6 -> 1.0.6-patch-1)的版本的机会,而不是准备发布的开发版本(1.0.7-SNAPSHOT -> 1.0.7)。

关于svn - SVN 中的 Maven 发布周期和版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11565631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com