2013-09-16 31 views
2

我想通過在詹金斯動態參數在計劃的作業(此版本上午3:00每天運行)傳入詹金斯動態參數建立

,如果我在Linux命令行中執行它這個工程:

mvn package -DintegrationTag=$(date +%d-%m-%y) 

mvn package -DintegrationTag="$(date +%d-%m-%y)" 

mvn package -DintegrationTag="$(date +"%d-%m-%y")" 

與這3個選項,這就是執行,例如(這是我想在詹金斯做):

mvn package -DintegrationTag=16-09-2013 

但這些句子,不要在我的詹金斯的目標和選項的工作(因爲動態參數)。

有沒有辦法做到這一點?

回答

5

解決方案

echo "NOW=`date +%d-%m-%y`"> env.properties 

屬性的路徑:這constains腳本文件的

內容文件:

env.properties 

項目,目標和選項:

clean test package -DintegrationTag=$NOW 

進樣的環境變量構建過程=真

+0

您需要爲此安裝[EnvInject Plugin](https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin)。 – cpetry

2

在構建 「執行shell」 中添加該

NOW=`date +%d-%m-%y` 
mvn package -DintegrationTag=$NOW 
+0

執行此操作後,integrationTag param在生成的jar中沒有賦值到app.properties中。 –

+0

看看控制檯輸出,你應該看到正在執行的命令是''mvn package -DintegrationTag = 16-09-2013'' – Vorsprung

+0

你說得對,但是如果param(integrationTag)沒有在app.properties中設置我也有同樣的問題。 –

0

另一種選擇可以在詹金斯執行頂級行家的目標。 將所需的變量值注入構建環境的前兩個步驟與下面的@Iker給出的答案保持相同。
在第三步中,給予目標爲
clean test package

,然後在「高級」選項卡中的屬性部分,給予
integrationTag=$<your variable name>

注意,該解決方案是有用的,當一個創建於詹金斯自由式項目。對於Maven 2/3項目,@Iker的解決方案很好:)