2017-10-30 37 views
1

マイジェンキンスファイルは以下のようになります。Jenkinsファイルのステージ外の変数にアクセスする方法Groovy関数?

import groovy.json.* 
def manifestFile = "C:\\manifest.yml" 

node { 
    stage('Build') { 

    } 
    stage('Deploy') { 
    checkDeployStatus() 
    } 
} 

def boolean checkDeployStatus() { 
    echo "${manifestFile}" 
    return true 
} 

私は取得しています例外は以下の通りです:

groovy.lang.MissingPropertyException: No such property: manifestFile for class: groovy.lang.Binding 
    at groovy.lang.Binding.getVariable(Binding.java:63) 

私はノードの外に変数にアクセスするにはどうすればよいですか?

答えて

0

Groovyは、スクリプト・レベルでは異なる種類のスコープを持っています。私はそれをすべて私の頭の中で整理しておくことはできません。すべての理由を説明することなく(そしておそらくそれを正当化しないで)、私は(あなたが見てきたように)manifestFile変数がその機能の範囲にないことを伝えることができます。 manifestFileを宣言しないでください(つまり、defはその前に置かないでください)。それはそれを "グローバル"(実際にはあなたの目的のためにここでは)変数にするでしょう、そして、それはメソッド呼び出しでアクセス可能でなければなりません。

+0

ありがとうしてみてください。それはうまくいった。 – Srinivas

0

この

import groovy.json.* 
    manifestFile = "C:\\manifest.yml" 

    node { 
    stage('Build') { 

    } 
    stage('Deploy') { 
    checkDeployStatus() 
    } 
} 

def boolean checkDeployStatus() { 
    echo "${manifestFile}" 
    return true 
} 
+0

ありがとうございます。私は変数のdefを削除し、それは働いた。助けてくれてありがとう。 – Srinivas

関連する問題