繁体   English   中英

发布管理 - Maven,Bamboo和JIRA

[英]Release Management - Maven, Bamboo and JIRA

我想找到使用Maven 2,Bamboo 3.1和JIRA 4.3管理版本的最佳方法。 我尝试了很多东西,但由于漏洞或缺少功能,我一直在努力。

我的最终目标是让版本来自JIRA,让Bamboo采用这些版本并使用Maven从它们构建人工制品然后将这些文物部署到存储库(在我们的例子中是Nexus)。

以下是我尝试过的方法:

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

父母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插件结合使用,我可以根据需要构建和部署我的模块版本并发布。

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

2)在pom中使用具体的SNAPSHOT版本并配置bamboo以使用Bamboo Release Management Plugin执行Maven Release Plugin。

不幸的是,Maven Release Plugin需要增加版本,Bamboo插件允许您获取要构建的当前版本的名称,而不是下一个版本。 如果没有这些信息,使用Maven Release Plugin会将版本增加到不受JIRA管理的版本。 为了使这个选项工作,我要么需要下一个版本,要么能够在Bamboo Release Management插件完成它之后运行一个计划(这个第二个修复程序也会在你提交日志中添加额外的混乱得到一个提交自动增量和一个正确的增量)。

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

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

这个选项涉及太多的过程,一定会出错。

我不能成为唯一一个尝试使用这些技术获得自动发布的人,任何人都可以提供帮助。

谢谢

亚光,

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

希望这可以帮助,

弗朗西斯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM