2017-03-10 86 views
0

我正在使用Maven Release Plugin,我試圖用我的Jenkins內部版本號來標記每個發佈。如何爲Maven發佈設置標籤

我已經試過這從pom.xml

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-release-plugin</artifactId> 
     <version>2.5.3</version> 
     <configuration> 
      <tagNameFormat>${env.BUILD_NUMBER}</tagNameFormat> 
     </configuration> 
     </plugin> 

而且還從詹金斯當我打電話的Maven:

mvn release:prepare -tag=${env.BUILD_NUMBER} 

但是,我越來越:

Unable to tag SCM 
[ERROR] Provider message: 
[ERROR] The git-tag command failed. 
[ERROR] Command output: 
[ERROR] fatal: tag 'my-project-1.3' already exists 

我不確定1.3代表什麼。

那麼我該如何標記發佈?我犯了什麼錯誤?

回答

2

你的POM可能是在版本1.3-SNAPSHOT

mvn release:prepare 

將更新版本1.3,你的情況我的項目 - 1.3創建的Git標籤「的artifactId版本」,然後設置版本你的pom到1.4-SNAPSHOT進行下一次迭代。

要解決您的問題刪除標籤請參閱How to delete a git remote tag?然後運行mvn release:再次準備。

您可能需要設置您的版本回到1.3快照,這可以用

mvn versions:set -DnewVersion=1.3-SNAPSHOT 

完成,或者只需編輯您POM /勁歌。

+0

如果我多次執行'mvn release:prepare',版本仍然是'1.3',並且不會增加。任何想法爲什麼? – octavian

+1

@octavian在git標籤之後,版本將更改爲1.4-SNAPSHOT,所以它不會執行此命令。 –

+0

我可以做一些類似'mvn release:prepare -DnewVersion = $ {env.BUILD_NUMBER}',其中'BUILD_NUMBER'是詹金斯的版本號?我想指定一個版本取決於詹金斯內部版本號,但我不知道如何。 – octavian

相關問題