2012-01-16 38 views
4

在我們的項目,我們在格式聲明我們的SVN標籤生成的標籤日期:指定由行家釋放小插件

YYYY-MM-DD - V {} project.version [$ {環境}]

如2012-01-16 - V1.0.1 [直播]

是否有可能使用Maven釋放插件(版本2.2.2)來實現這一目標?

值得指出的是版本和環境部分都是通過release插件獲得的。這純粹是無法檢索的時間戳。

這是我所期望的將工作:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.2.2</version> 
    <configuration> 
     <preparationGoals>clean verify</preparationGoals> 
     <tagNameFormat>${timestamp} - [email protected]{project.version} [${env}]</tagNameFormat> 
     <checkModificationExcludes> 
      . 
      . 
      .  
     </checkModificationExcludes> 
    </configuration> 
</plugin> 

timestamp屬性使用,因爲它被添加到清單文件列入戰爭文件buildnumber - Maven的插件成功生成。

我曾嘗試加入buildnumber:創建目標進入準備目標,但它產生的執行釋放時的輸出如下:準備

什麼是供應鏈管理的釋放標籤或標籤「項目名稱」? (abcd)null - v1.0.1 [LIVE]::

問題似乎是在設置tagName的時候沒有生成timestamp屬性,這表示準備目標不在該階段要求提供tagName。

下可能工作(午餐後會對其進行測試),儘管我寧願只需要調用釋放:準備

MVN buildnumber:創建發佈:準備

任何投入將是歡迎。

乾杯


編輯

我已經使用buildnumber測試:創建發佈:準備和它如預期,雖然我也必須作出進一步的修改,其要誠實是不工作痛苦的一點。

的TagNameFormat目前包含:

YYYY-MM-DD - V {} project.version [$ {}環境]

這包含空格和方括號,並在與此執行格式,你會得到一個錯誤,指出該URL沒有正確的URI編碼。爲了避開這個你必須在格式已經指定tagNameFormat URI編碼,如:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.2.2</version> 
    <configuration> 
     <preparationGoals>clean verify</preparationGoals> 
     <tagNameFormat>${timestamp}%20-%[email protected]{project.version}%20%5B${env}%5D</tagNameFormat> 
     <checkModificationExcludes> 
      . 
      . 
      .  
     </checkModificationExcludes> 
    </configuration> 
</plugin> 

這是討厭的,但它的工作,並根據需要,將創建的標籤。

將仍然有興趣,看看是否有人有任何建議,如何通過只執行得到的tagNameFormat時間戳:

MVN發佈:準備

,而不是

mvn buildnumber:create release:prepare

+0

正常構建[生命週期綁定](http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins)不適用於發佈嗎? – tveon 2012-02-20 10:36:07

回答