在我們的項目,我們在格式聲明我們的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
正常構建[生命週期綁定](http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Plugins)不適用於發佈嗎? – tveon 2012-02-20 10:36:07