我想找到使用Maven 2,Bamboo 3.1和JIRA 4.3來管理髮布的最佳方式。我已經嘗試了很多東西,但由於錯誤或功能缺失,我一直在不斷嘗試。發佈管理 - Maven,Bamboo和JIRA
我的最終目標是讓JIRA擁有多個版本,讓Bamboo使用這些版本並使用Maven構建它們的構件,然後將這些構件部署到存儲庫(本例中爲Nexus)。
以下是我已經試過的方法:
1)使用一個佔位符中的所有勁歌項目版本:
父POM
兒童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 Release Management Plugin配置竹籤執行Maven Release Plugin。
不幸的是,Maven Release Plugin需要增加的版本,竹插件允許您獲取當前版本的名稱,但不是下一個版本。如果沒有這些信息,使用Maven Release Plugin會將版本增加到不受JIRA管理的內容。爲了使這個選項可以工作,我需要下一個版本,或者在Bamboo Release Management Plugin完成它的工作之後能夠運行一個計劃(這個第二次修復也會增加提交日誌的額外混亂,就像你會爲自動增量獲得一個提交,併爲適當的增量提供一個提交)。
2.b)與2)相同,但您必須在通過計劃配置界面進行任何發佈之前指定Bamboo中的下一個版本,並將該值手動設置爲計劃應處理的下一個JIRA版本。這解決了2)的問題,但增加了額外的手動步驟。
3)手動做事,可能使用Maven Release Plugin。完全忽略Bamboo中的所有發行版功能,並通過調用Maven Release Plugin目標在需要時更改版本來手動管理在命令行上發佈的版本。當發生這種情況時,JIRA版本也需要手動發佈。我們還需要配置一個竹版本來運行並測試發行插件爲非SNAPSHOT版本創建的標籤。
這個選項有很多過程涉及到的東西肯定會出錯。
我不能是唯一一個試圖使用這些技術獲得自動發佈的人,任何人都可以提供幫助。
感謝
感謝您的回覆。事實證明,這種方法不適用於項目之外的可重用組件,因爲在部署正確版本的製造品時,pom最終會以佔位符而不是具體版本。因此父項引用有 $ {ci.version} 使poms在父項目之外不可用。最後,我去了一個固定快照版本和明確從竹工作中調用的maven版本插件的組合,以便將版本更改爲所需的版本。 –
Matt