5

我想找到使用 Maven 2、Bamboo 3.1 和 JIRA 4.3 管理版本的最佳方式。我尝试了很多事情,但由于错误或缺少功能,我一直在死胡同。

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

以下是我尝试过的方法:

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

家长会

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

儿童绒球

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

如果您从项目根 pom 开始构建并-Dci.version=<my-version>在命令行上指定,则会构建。将它与Bamboo 发布管理插件结合起来,我可以构建和部署我的模块版本并根据需要发布。

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

2) 在 pom 中使用具体的 SNAPSHOT 版本,并使用 Bamboo 发布管理插件配置竹子以执行Maven 发布插件。

不幸的是,Maven 发布插件需要增加版本,竹子插件允许您获取当前版本的名称来构建,但不能获取下一个版本。如果没有这些信息,使用 Maven 发布插件会将版本增加到不受 JIRA 管理的内容。为了使这个选项起作用,我需要下一个可用的版本,或者能够在 Bamboo 发布管理插件完成后运行计划(第二个修复也会像你一样给提交日志添加额外的混乱获得一个自动增量的提交和一个正确增量的提交)。

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

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

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

我不可能是唯一一个尝试使用这些技术自动发布的人,谁能帮忙。

谢谢

4

1 回答 1

0

马特,

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

希望这可以帮助,

弗朗西斯

于 2011-12-16T05:13:12.840 回答