2016-07-26 26 views
7

我在Red Hat Linux上使用Jenkins 2.6。我想在我的Jenkins文件中使用以下內容,但是當我嘗試時,詹金斯痛苦地抱怨。 (這似乎只討厭的=運算符的左側的語法。):Jenkinsfile:一次爲多個變量定義和賦值似乎沒有實現

def (a, b) = [6, 7] 

它不喜歡多分配似乎又Groovy的1.6及更高版本顯然支持他們,按照這個帖子:

http://mrhaki.blogspot.co.uk/2009/09/groovy-goodness-multiple-assignments.html

我想這樣做,這樣,當我調用返回的方法[6,7]我可以這樣調用:

def (a, b) = mymethod() 

def mymethod() 
{ 
    return [6, 7] 
} 

可以在尼永告訴我這是否應該在詹金斯工作,如果是的話,詹金斯的版本是什麼?或者它是不受支持的功能?還是一個錯誤?

感謝

+2

這已修復! https://issues.jenkins-ci.org/browse/JENKINS-44027 – rjohnston

回答

0

它應該是可用的(實際上是從腳本控制檯的工作),但是它看起來像一切必要的努力使之從管道腳本的工作還沒有完成。

開發郵件列表(https://groups.google.com/forum/#!forum/jenkinsci-dev)可能會告訴你這是一個錯誤還是隻是一個不受支持的功能!

3

如所解釋的here,管道「腳本」不是簡單的Groovy腳本,它們正在運行之前重轉化,上主一些部分,對從機的一些部位,用它們的狀態(變量值)串行化並傳遞到下一個步驟。因此,不支持每個Groovy功能。

我希望它在Jenkins文檔&演示文稿中更加清晰(這就是爲什麼我發現自己重複上面的段落......對此有很多困惑)。管道是如此簡單,它似乎魔術......好吧,它有點;)

似乎多個任務不支持確實。我只找到這個參考來確認它:this example of a commit由於這種限制,作者將其代碼從多個作業更改爲簡單作業。

根據@rjohnston的建議,在郵件列表上尋找它可能是個好主意。

+0

嗨,你覺得這個限制在[腳本管道]中仍然有點混亂(https://jenkins.io/doc/book/pipeline/syntax/ #scripted-pipeline)文檔,因爲它表示「Groovy語言提供的大多數功能都可供用戶使用......」。定義一個Groovy真正在其中的地方會更有幫助。 – snaphuman