发布管理 - Maven,Bamboo和JIRA

时间:2011-09-06 10:34:45

标签: maven-2 jira release-management maven-release-plugin bamboo

我想找到使用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>

Child 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以使用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版本创建的标记。

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

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

由于

1 个答案:

答案 0 :(得分:0)

无光,

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

希望这有帮助,

弗朗西斯