gpt4 book ai didi

java - 使用 maven-release-plugin 的正确工作流程是什么?

转载 作者:行者123 更新时间:2023-11-30 11:19:05 24 4
gpt4 key购买 nike

我只有使用 SVN 命令(通过 tortoiseSVN)发布的经验,但我想改用 maven-release-plugin。但我的经验是 maven-release-plugin 非常非常挑剔。我想知道我应该如何进行发布和分支,所以我不会反对插件。对于这两种情况,正确的 maven-release-plugin 工作流程是什么:

  1. 大家都在主干上开发,我们决定给一个客户一个版本。

    我的猜测是你应该为此在主干上做一个 release:prepare release:perform。它会将版本放在标签目录中。您将标签交给客户。

  2. 我们向客户提供了一个版本,但发现了一个错误。我该如何修复他们版本中的错误并为他们提供新版本?

    我的猜测是您应该使用标签上的 release:prepare release:branch 将标签复制到分支目录中。将分支放在名为“release-version.x”的目录中,但给分支一个 Maven 版本,如“release-version.1”修改该分支以修复错误后,使用 release:prepare release:perform 将分支发布回标记目录.该分支现在将具有“release-version.2”的 Maven 版本

    如果之后需要修复另一个错误,只需修改已有的“release-version.x”分支,然后在其上运行另一个 release:prepare release:perform

  3. 您想“卡住”分支上的开发并可能将其提供给客户,但您很确定在您准备好之前就会发现其中的错误将其部署到生产服务器。

    我的猜测是您可以发布 .0,当/如果发现分支时,将 .0 分支到 .1-SNAPSHOT,在 SNAPSHOT 中修复它,然后将分支发布到 .1。

    但是,您可能不喜欢客户首先获得 .1 或 .2 版本的想法。如果您不喜欢这样,您可以使用 release:branch 目标先创建分支,然后仅在准备就绪时才释放该分支。

这都是理论。正如我之前所说,maven-release-plugin 非常挑剔,我不知道它是否会让我完成所有这些步骤。有人可以解释在 Maven 中用于标记和分支代码的最佳工作流程吗?

最佳答案

我假设您的 Maven 版本号是问题的一部分。这是一个想法:

响应 1) 当你发布时,首先分支,然后立即从分支发布。如果发布插件失败,它可以让您免于整理主干 pom。

响应 2) 当你分支时,maven 将主干版本从 1.0.0-SNAPSHOT 增加到 1.0.1-SNAPSHOT,我们实际上就在那里遇到了问题。

如果我们可以增加次要版本而不是增量版本,我们将有

分支中为 1.0.0-SNAPSHOT,主干中为 1.1.0-SNAPSHOT,发布/标签中为 1.0.0。

修复bug时,从tag 1.0.0分支,在新的分支中将version设置为1.0.1-SNAPSHOT。这一步,有点像

mvn release:branch -DbranchName=fixMe -DupdateWorkingCopyVersions=false 

来自有问题的内部标记目录。

使用 mvn release:prepare 和 release:perform 从您的分支版本 1.0.1 修复错误和发布。

使用选项 -DupdateWorkingCopyVersions=false 这样标签版本就不会更新。

使用 versions:set 插件设置分支中的版本。这可能需要一个 shell 脚本来计算增量版本,或者如果您不经常这样做,则需要手动计算。

关于java - 使用 maven-release-plugin 的正确工作流程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23434590/

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