gpt4 book ai didi

svn - 来自标记发布候选或分支的 Maven 发布

转载 作者:行者123 更新时间:2023-12-04 19:46:22 24 4
gpt4 key购买 nike

考虑以下场景:我有一个项目正在开发中,使用 maven 作为构建工具,使用 svn 或其他一些工具进行版本控制。

在某些时候,我决定它“可能”准备好发布,我设置了一个 svn 标签将其标记为 release candidate

+ Trunk (0.0.1-SNAPSHOT)
|
+----------------------------+ Branch "release-candidate" (0.0.1-SNAPSHOT)
| | (goes to QA for testing)
+ Trunk (0.0.2-SNAPSHOT) |
| (development continues) + Tag "release-0.0.1" (0.0.1)
.... (deploy this revision)

此时我需要用新的开发版本更新pom.xmlrelease-candidate 保留快照版本,直到 QA 完成测试并宣布发布准备就绪。只有这样才会在标签/分支上执行实际的发布+部署。

在测试发布候选版本时,可以在主干中继续开发。

这种两步发布场景可以用maven构建来实现吗? release 插件是否足够,或者我还需要其他插件吗?

最佳答案

Maven Release Plugin 是发布 Maven 项目的事实标准,它为此强制执行一些具体的工作流程。如我所见,您有完全不同的假设,但如果您尝试在此处适应 Maven 的约定,Maven Release Plugin 将在此处完成所有工作。

首先,release:branch目标可以帮助您创建一些版本行分支,同时在 trunk 中修改版本准备新的发展。但是,在我看来,为每个下一个版本共享此分支名称(此处为 release-candidate)绝对不是一个好主意。这里的一种标准方法是在每个版本中执行某种版本分支,在实际的最终版本之前对内容进行一些改进。所以分支名称0.0.1例如就可以了。顺便说一下,release:branch目标更新<scm /> POM 中的标记指向刚刚创建的分支,因此使用共享分支再次不是一个好主意。

完善您的候选发布版后,您可以使用相当标准的 release:prepare 进行实际发布和 release:perform在 Maven 中像往常一样从分支调用 。这会创建标签、部署内容等。

现在,如果你真的想固定这个分支名称(因为测试人员的需要或其他原因),你总是可以使用 svn:externals事情和更新release-candidate始终指向当前发布候选分支的别名。

关于svn - 来自标记发布候选或分支的 Maven 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10529324/

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