gpt4 book ai didi

maven-2 - 发布管理 - Maven、Bamboo 和 JIRA

转载 作者:行者123 更新时间:2023-12-02 10:13:06 24 4
gpt4 key购买 nike

我想找到使用 Maven 2、Bamboo 3.1 和 JIRA 4.3 管理版本的最佳方法。我尝试了很多方法,但由于错误或功能缺失,我总是陷入死胡同。

我的最终目标是让版本来自 JIRA,让 Bamboo 获取这些版本并使用 Maven 从中构建工件,然后将这些工件部署到存储库(在我们的例子中为 Nexus)。

以下是我尝试过的方法:

1) 在项目版本的所有 pom 中使用占位符:

父pom

<project ...>
<groupId>group</groupId>
<artifactId>parent</artifactId>
<version>${ci.version}</version>
...
<modules>...</modules>
</project>

子pom

<project ...>
<parent>
<groupId>group</groupId>
<artifactId>parent</artifactId>
<version>${ci.version}</version>
</parent>
<artifactId>child</artifactId>
...
</project>

如果您从项目根 pom 启动构建并指定 -Dci.version=<my-version> ,则会进行此构建在命令行上。将此与 Bamboo Release Management Plugin 结合起来我可以构建和部署模块的版本并根据需要进行发布。

这种方法的问题是,Maven 在部署或安装时不会替换 poms 中的占位符变量,这意味着存储库中的 poms 具有 ${ci.version}当我真的希望他们有具体版本时标记。由于占位符,这意味着没有人可以使用我部署的模块。请参阅MNG-2971 .

2) 在pom中使用具体的SNAPSHOT版本并配置bamboo来执行Maven Release Plugin使用 Bamboo 发布管理插件。

不幸的是,Maven Release Plugin 需要增量到的版本,bamboo 插件允许您获取要构建的当前版本的名称,但不能获取下一个版本的名称。如果没有此信息,使用 Maven 发布插件会将版本增加到不受 JIRA 管理的版本。为了使这个选项起作用,我要么需要可用的下一个版本,要么能够在 Bamboo 发布管理插件完成它的事情后运行一个计划(第二个修复也会给提交日志添加额外的困惑,因为你会获取一项用于自动增量的提交和一项用于正确增量的提交)。

2.b) 与 2) 相同,但您必须在通过计划配置界面进行任何发布构建之前指定 Bamboo 中的下一个版本,将该值手动设置为计划应处理的下一个 JIRA 版本。这解决了 2) 的问题,但增加了额外的手动步骤。

3) 手动执行操作,可能使用 Maven 发布插件。完全忽略 Bamboo 中的所有发布功能,并通过调用 Maven Release Plugin 目标在需要时更改版本来手动管理命令行上的发布。发生这种情况时,JIRA 版本也需要手动发布。我们还需要配置一个bamboo构建来运行和测试发布插件为非SNAPSHOT版本创建的标签。

这个选项涉及太多流程,肯定会出错。

我不是唯一一个尝试使用这些技术实现自动化发布的人,任何人都可以提供帮助。

谢谢

最佳答案

马特,

您必须在目标中指定 -Dci.version={bamboo.custom.brmp.name}当我寻找完全相同的信息时,我偶然发现了你的问题,但是对于 JIRA 4.4 和 Bamboo 3.3,发布管理插件已被 JIRA Bamboo 插件替换/升级......

希望这有帮助,

弗朗西斯

关于maven-2 - 发布管理 - Maven、Bamboo 和 JIRA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318493/

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