22

Hudson 内で (groovy プラグインを使用して) Groovy を呼び出して、ビルドのプロパティを取得しようとしています。しかし、私はこの例外を受けています:

groovy.lang.MissingPropertyException: そのようなプロパティはありません: クラスのマネージャー: Script1

次の行でこれを取得します。

def buildNUmber = manager.build.number

これは、スクリプトを使用するだけでなく、Jenkins 内でインライン コマンドとして実行すると発生します。

以下の解決策を試しましたが、宣言自体 (2 行目) で失敗します。

Binding binding = new Binding();
binding.setVariable("manager", manager);
GroovyShell shell = new GroovyShell(binding);
shell.evaluate(new File("d:/dev/others/hudson/userContent/ScriptStuff.groovy").text);

上記は、Groovy コマンドを使用して実行されます。そして、ビルドを実行すると、エラーが発生し、次の行について不平を言います-binding.setVariable("manager", manager);

Groovy スクリプト ファイルを使用すると、次のようなエラーが表示されます。

 def buildNumber = manager.build.number

両方のエラーは次のとおりです。

groovy.lang.MissingPropertyException: そのようなプロパティはありません: クラスのマネージャー: Script1

このスレッドで言及されていることもすべて試しました:

Hudson 2.2.1 と Groovy 2.1.3 を使用しています。何が間違っている可能性がありますか?

4

4 に答える 4

4

コードの一部が欠けているかもしれませんが、マネージャーはどこで定義していますか? これが完全な Groovy スクリプトである場合、何も宣言されていない変数をバインドしようとしているので、失敗しても不思議ではありません。

次のように、必要なマネージャーを定義するだけです。

def manager = "my manager" // probably not what you want

これにより、現在のエラーが解決されるはずです。

于 2013-04-21T18:54:21.543 に答える