Maven 2 发布管理-Maven、Bambon和JIRA

Maven 2 发布管理-Maven、Bambon和JIRA,maven-2,jira,release-management,maven-release-plugin,bamboo,Maven 2,Jira,Release Management,Maven Release Plugin,Bamboo,我想找到使用Maven 2、Bambol 3.1和JIRA 4.3管理发行版的最佳方法。我已经尝试了很多东西,但由于bug或功能缺失,我一直走到死胡同 我的最终目标是让JIRA提供版本,让Bambor使用Maven从中获取这些版本并构建人工制品,然后将这些人工制品部署到存储库(在我们的例子中是Nexus) 以下是我尝试过的方法: 1) 在项目版本的所有POM中使用占位符: 母体聚甲醛 <project ...> <groupId>group</groupId&g

我想找到使用Maven 2、Bambol 3.1和JIRA 4.3管理发行版的最佳方法。我已经尝试了很多东西,但由于bug或功能缺失,我一直走到死胡同

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

以下是我尝试过的方法:

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

母体聚甲醛

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

组
我可以构建和部署我的模块版本,并根据需要发布

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

2) 在pom中使用具体的快照版本,并使用竹发布管理插件配置竹来执行快照

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

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

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

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

我不是唯一一个尝试使用这些技术获得自动发布的人,有人能帮我吗

谢谢你,马特

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

希望这有帮助


弗朗西斯

谢谢你的回复。事实证明,这种方法不适用于项目外的可重用组件,因为虽然将部署一个人工制品的正确版本,但pom最终使用的是占位符,而不是具体版本。因此父引用有${ci.version},使得POM在父项目之外不可用。最后,我选择了固定快照版本和maven版本插件的组合,该插件从一个竹竿作业显式调用,以将版本更改为所需的版本。
<project ...>
  <parent>
    <groupId>group</groupId>
    <artifactId>parent</artifactId>
    <version>${ci.version}</version>
  </parent>
  <artifactId>child</artifactId>
  ...
</project>