2014-02-06 280 views
0

我想設置作業環境變量。一些變量是從其他環境變量設置的。例如在Windows上:從另一個Jenkins環境變量設置Jenkins環境變量

var1=this 
var2=that 
var3=other 
var4=%var1%_%var2%_%var3% 

我想將var4設置爲'this_that_other'。我嘗試將前三個設置爲作業變量,第四個作爲構建變量。沒有快樂。

+0

可能要使用一些黑客/解決辦法像它寫入一個文件並重新讀取。 – paulm

+0

謝謝。這是我所害怕的。 –

回答

1

您可以使用Jenkins的EnvInject Plugin來做到這一點。這裏var1,var2和var3是構建參數或預定義的環境變量。 Groovy也可以做同樣的事情。

enter image description here

+0

我們使用EnvInject插件(1.83),也許我對它的使用很愚蠢,但它沒有幫助。 –

+0

我的問題陳述並不精確,但我有:$ var1 = this $ var2 = that $ var3 = $ var1_ $ var2。它不會將_視爲文字,而是尋找$ var1_。它使用\而不是_工作。出路在於設置$ sep = _和$ var3 = $ var1 $ sep $ var2。 –

0

它的工作設置VAR4在一個批處理命令,如果這是在需要VAR4:

set var4=%var1%_%var2%_%var3% 

VAR4現在具有用於批處理命令的持續時間的所希望的值,但不用於任何隨後的構建步驟。這對我沒有幫助,因爲我需要在ant命令中使用var4。

0

因爲您只在當前進程範圍內設置變量。正如你所說,如果你不想使用文件來存儲和檢索,另一個選擇是使環境變量設置機器明智,如果這符合你的需要,並不會有任何副作用。

如果你能安裝PowerShell插件,使用PowerShell腳本是很容易做到這一點:

[Environment]::SetEnvironmentVariable("VAR4", $WhatEverYouWant, "Machine") 

這樣,就可以立即上機水平VAR4變量,在所有其他進程的意義。

+0

謝謝安迪,我不知道,但在這種情況下,可能會有多個進程在該機器上運行,VAR4的值不同。 –