2017-11-01 9 views
1

私はJenkins(2.60.1)の新しいバージョンと以前のJenkinsバージョンで動作していたGroovyスクリプトにアップグレードしています1.596/2)はもはや機能しません。groovy.lang.MissingPropertyException:そのようなプロパティはありません:class:groovy.lang.Bindingのジェンキン

これはJenkinsのビルドプロジェクトです。これはパラメータ化されており、Groovyスクリプトを使用してChoice Provider(Choice ProviderはSystem Groovy Choice Parameterに設定されています)の選択肢を提供しています。

我々は(これはGroovyのスクリプトの一部である)ジェンキンス環境変数へのアクセスを取得し、このようにそうしようとしている:実行している場合

import hudson.slaves.EnvironmentVariablesNodeProperty 
import hudson.EnvVars 

EnvironmentVariablesNodeProperty prop = jenkins.getGlobalNodeProperties().get(EnvironmentVariablesNodeProperty.class) 
EnvVars env = prop.getEnvVars() 

def MY_VAR = env['MY_JENKINS_VAR'] 

はしかし、私は次のエラーを取得していますスクリプト:

Failed to execute script 

groovy.lang.MissingPropertyException: No such property: jenkins for class: groovy.lang.Binding 
at groovy.lang.Binding.getVariable(Binding.java:63) 
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224) 

それは「ジェンキンス」参照は、内蔵するプロパティジェンキンスによって提供されるか、または、おそらくGroovyの期待されているが、私は私が作るために何をする必要があるか上の任意の情報を見つけることができないように思えますGroovyスクリプトからアクセスできます。

ありがとうございました。

答えて

0

としては、その後、私は私のスクリプトの残りの部分にそれがあった方法を行うことができたソリューションは、以下の

import jenkins.model.* 
jenkins = Jenkins.instance 

を行うことだった、別のポストに@Jayanによって指摘。

0

ジェンキンズがこのインポートをブロックしていないことを再度確認してください。スクリプトの承認に行き、それがブロックされているかどうかを確認します。それがクリックを許可している場合。

https://jenkins.io/doc/book/managing/script-approval/

+0

私はオフィスに戻ったときにチェックしますが、今日の午後には、Groovyプラグインに関するスクリプト承認に何も表示されませんでした。 "jenkins"オブジェクトはGroovyプラグイン、あるいは他のプラグインによって提供されていますか? –

+0

Jenkinsのビルドを確認したところ、Groovyスクリプトを実行してエラーを取得した後(上記のように)、ビルドのIn-process Script Approvalページに移動しましたが、承認が必要なものは表示されません。私は試みている)。 JenkinsがGroovyスクリプトで環境変数を作成する方法を教えてください。 –

関連する問題