gpt4 book ai didi

maven - 如何在 CI 构建中更改 POM 版本?

转载 作者:行者123 更新时间:2023-12-02 16:15:38 24 4
gpt4 key购买 nike

我可能完全错误地解决了这个问题,但是这里......

我们想使用 Gitlab 和 Nexus 实现一个 development -> releases/x.y.z -> master 工作流程。 Artifact 应分别标记为 x.y.z-SNAPSHOTx.y.z-rcx.y.z

ci-build.yml 中,我尝试根据当前分支修改 POM,以便创建正确标记的 Artifact 。问题显然是更改将在当前构建提交之前进行一次提交,并且构建中使用的 POM 具有原始版本。

例如

  • 从开发创建发布分支
  • POM 有 2.3.4-SNAPSHOT,在 ci-build 期间修改为 2.3.4-rc 并提交并推送到 git
  • 执行后续构建和部署操作,但这会将 2.3.4-SNAPSHOT 包部署到 Nexus 而不是所需的 2.3.4-rc

我的问题如下:

我可以修改 POM 并在 ci-build 的所有后续阶段使用更新后的 POM 吗?

(我不认为这是正确的程序,但这是我的团队领导要求的,所以我正在努力实现它...)

最佳答案

我的解决方案是完全避免提交并使用 https://maven.apache.org/maven-ci-friendly.html 中描述的策略.

这定义了一个新属性 revision,可以使用 maven 参数 -Drevision=x.y.z-SUFFIX 进行设置。 POM 版本是从此变量设置的。

构建 ci 读取 project/properties/revision 以提取 POM 版本并根据当前分支适本地更改版本。

使用这种方法,我可以在不添加任何额外提交的情况下实现所需的结果,因为 Maven 可以使用外部提供的版本执行其目标。

关于maven - 如何在 CI 构建中更改 POM 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66801792/

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