2013-02-03 32 views
0

我正在使用jenkins來構建包。我的包使用jankins環境變量BUILD_ID,它提供了構建日期:https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables是否可以爲maven + jenkins包裝過程編寫「本地」腳本/鉤子?

問題是,我需要使用在XML配置文件日期,在dateTime類型元件從架構http://www.w3.org/2001/XMLSchema

詹金斯使用格式

YYYY-MM-DD_hh-mm-ss 

爲BUILD_ID var和日期時間字段需要格式

YYYY-MM-DDTHH:MM:SS 

( 'T' 而不是 '_' 日期和時間,和之間 ':',而不是' - '作爲時間分隔符)。

我知道jenkins的插件允許爲BUILD_ID變量設置自定義的日期格式,但我不能碰jenkins。是否可以編寫一個「本地」腳本/鉤子(通過本地我的意思是在我的項目範圍內,而不需要對外部工具進行任何更改),它會在jenkins中讀取它後轉換BUILD_ID?現在我讀BUILD_ID與POM的元素行:

<buildinfo.timestamp>${env.BUILD_ID}</buildinfo.timestamp> 

回答

1

有一個叫maven-timestamp-plugin一個微小的Maven插件,可以幫助你。它以您喜歡的格式創建一個時間戳,並將其寫入系統屬性,您可以訪問類似於Jenkins BUILD_ID的系統屬性。

插件配置會是這個樣子:

<plugin> 
    <groupId>com.keyboardsamurais.maven</groupId> 
    <artifactId>maven-timestamp-plugin</artifactId> 
    <version>1.0</version> 
    <configuration> 
    <propertyName>timestamp</propertyName> 
    <timestampPattern>yyyy-MM-ddTHH:mm:ss</timestampPattern> 
    </configuration> 
    <executions> 
    <execution> 
    <goals> 
     <goal>create</goal> 
    </goals> 
    </execution> 
    </executions> 
</plugin> 

...在你的XML文件,你可以寫<buildinfo.timestamp>${timestamp}</buildinfo.timestamp>

+0

不過,這需要一個機器上安裝Maven插件與jankins吧?我沒有權限這麼做,但我會問我們的管理員是否有可能。投票,但我會堅持接受,也許會有人有解決方案:) – Fisher

+0

maven-timestamp-plugin在Maven Central上可用。因此,如果您的構建服務器(即運行Jenkins的機器)可以訪問它,使用此插件應該沒有任何問題。 –