通过修改POM进行参数化功能构建的问题

时间:2019-05-30 21:33:30

标签: jenkins maven-3 mule-esb jgitflow-maven-plugin

我们正在研究m子的应用程序,最近我们被指示遵循PURE Scrum,即分支和开发的git-flow模型。

以下是我们需要遵循的步骤: 1.对于每个开发任务(已为其分配JIRA ID,例如JIRA-1234),我们需要创建以JIRA任务ID命名的不同功能分支。

  1. 一旦完成开发,并且在本地测试正常,我们需要将功能分支推送到远程存储库。

  2. Jenkins构建作业将轮询每个功能分支,并在发现任何推送事件时对其进行构建。部署完成后,工件版本将保存到Nexus。

  3. QA会将相应的功能分支部署到TEST环境中,执行自动化/手动测试。如果测试正常,则将合并功能分支以进行开发。

  4. 在sprint结束时,我们将从develop分支(仅包含当前sprint的TESTED OK开发)中创建RELEASE分支

我在实施这100%时遇到了问题(当然,我有点乐观):

  1. 如果质量检查人员需要使用Jenkins作业将每个功能分支部署到TEST环境中,那么Nexus中应该已经保存了一个具有唯一名称的工件(例如4.1.0-JIRA-1234-SNAPSHOT)。为此,我需要使用4.1.0 $ {JIRA_ID} -SNAPSHOT修改POM.xml文件,并从maven build命令传递JIRA_ID参数。这是可能的,但是使用此POM.xml文件在创建RELEASE时会遇到问题(这是因为我们使用MVN JGITFLOW:RELEASE-START / MVN JGITFLOW:RELEASE-FINISH)

  2. 我们可以将此职责赋予开发人员-当他们针对JIRA ID创建新功能分支时,他们会手动将POM.xml中的版本修改为4.1.0-JIRA-1234-SNAPSHOT。构建功能后,这会在Nexus中创建工件,并且质量检查人员可以将其部署到TEST中并完成测试。问题在于合并时,由于重叠的值,更多的功能分支可能与POM.xml文件发生冲突。

请有人建议我处理这种情况的最佳方法,并正确遵循GIT-FLOW流程吗?

1 个答案:

答案 0 :(得分:0)

有一个解决此问题的方法-将脚本添加到构建功能分支作业中。这将仅读取功能分支名称,并追加到工件名称。

例如: 功能分支名称-JIRAID-1234 POM工件版本-1.1.0-SNAPSHOT

Jenkins的构建工作最终将在名称为1.1.0-JIRAID-1234-SNAPSHOT的关系中生成工件。

这样可以更轻松地保存我的特定更改,并可以独立进行质量检查并进行测试