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