0
我在Groovy腳本中遇到問題,其中該變量在shell腳本部分中不可訪問。Groovy參數在Jenkinsfile的shell部分中不可見
腳本-1:
def a=20;
println ("a is: $a");
輸出-1:
a is: 20
腳本-2:
def a=20;
println ("a is: $a");
sh '''echo a is $a''';
輸出-2:
常規。 lang.MissingMethodException:沒有方法的簽名:Script1.sh()適用於參數類型:(java.lang.String)values:[echo a是$ a] 可能的解決方案:use([Ljava.lang.Object;)是(java.lang.Object繼承),運行(),運行(),任(),用(groovy.lang.Closure) 在Script1.run(Script1.groovy:3)
哪有我在殼牌部分sh
中獲得$a = 20
。換句話說,需要在shell腳本部分中傳遞變量$ a所需的操作。
我正在寫一個Jenkins管道的上下文中的腳本,我正面臨一個問題,即groovy變量在shell部分中不可見。
謝謝,我學到了一兩件事,但你確定第二點嗎?在一個普通的Groovy腳本中,情況並非如此(如OP所示),但是在Jenkins Pipeline腳本中卻有所不同? (我明白他們是......特別的)。或者你的意思是我們*應該使用大括號? (我明白) – qlown
@qlown你是對的,第二點是不正確的。調整我的答案。 – haschibaschi
@haschibaschi,請參考此鏈接https://groovyconsole.appspot.com/script/5088905221111808我仍然得到相同的問題 – Yash