シェルスクリプト部分で変数にアクセスできないGroovyスクリプトの問題に直面しています。Jenkinsfileのシェル部分にGroovyパラメータが表示されない
スクリプト-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 is $ a] 可能な解決策:use([Ljava.lang.Object;])
どのようにすることができます、Script1.runで(groovy.lang.Closure) (3 Script1.groovy)で、()、実行()、任意の()を実行し、(java.lang.Object)メソッドであります私はシェル部分に$a = 20
を得ますsh
。言い換えれば、シェルスクリプト部分で変数$ aを渡すためにはどのような操作が必要ですか。
私はこのスクリプトをJenkinsパイプラインの文脈で書いています。ここでは、シェル部分にGroovy変数が見えないという問題に直面しています。
ありがとう、私は事を2つ学んだが、その2点目については確かですか?一般的なGroovyスクリプトでは、これは(OPで示されるように)そうではありませんが、Jenkins Pipelineスクリプト内では違うのですか? (私は彼らが...特別だと理解しています)。それとも、中括弧を使用すべきですか? (私が理解している) – qlown
あなたは正しいです、第二の点は真ではありません。私の答えを調整しました。 – haschibaschi
@haschibaschi、Plsはこのリンクを参照していますhttps://groovyconsole.appspot.com/script/5088905221111808まだ同じ問題が発生します – Yash