2016-05-10 10 views
0

私はGroovyプラグインを使ってJenkinsのスレーブで簡単なGroovyスクリプトを実行しようとしています。 実行groovyスクリプトオプションと実行システムgroovyスクリプトオプションを使用しています。また、最新バージョン(2.4.6)のプラグインの "install automatically"(groovyウェブサイトからインストール)オプションも使用しています。しかし、ジョブが失敗し、私はこれを得ています:Jenkinsのスレーブでgroovyスクリプトを実行する

Building remotely on .... (...) in workspace C:\Jenkins_Slave\workspace\... 
Unpacking https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip to C:\Jenkins_Slave\tools\hudson.plugins.groovy.GroovyInstallation\groovy_2_4_6 on ... 
[groovy_reset_dead_slave] $ C:\Jenkins_Slave\tools\hudson.plugins.groovy.GroovyInstallation\groovy_2_4_6\bin\groovy.bat C:\Jenkins_Slave\workspace\...\hudson5850644430171226650.groovy 
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
C:\Jenkins_Slave\workspace\...\hudson5850644430171226650.groovy: 5: unable to resolve class jenkins.model.Jenkins 
@ line 5, column 1. 
    import jenkins.model.Jenkins 
^

1 error 

Build step 'Execute Groovy script' marked build as failure 
Finished: FAILURE 

この問題を克服して正しく動作させるにはどうすればよいですか? Groovy plugin pageから

答えて

0

のGroovyスクリプト システムのGroovyスクリプトの対プレーン「のGroovyスクリプトは、」ビルドが実行され、スレーブに、フォークJVMで実行されます。基本的には "groovy"コマンドを実行してスクリプトを渡すのと同じです。 システムのGroovyスクリプトOTOHは、JenkinsマスターのJVM内で実行されます。したがって、Jenkinsのすべての内部オブジェクトにアクセスできるため、これを使用してJenkinsの状態を変更することができます。 Jenkins Script Consoleの機能に似ています。

システムGroovyを使用していないときは、クラスパスにJenkinsオブジェクトがありません。必要なクラスが実行中のジョブからアクセス可能であることを確認し、「実行するGroovyスクリプト」ステップの「クラスパス」フィールドに渡す必要があります。

+0

スレーブ自体または別の場所で、パスのconentはどこにある必要がありますか?スレーブでコードを実行する必要があります。正しく理解すれば、 "import jenkins.model.Jenkins"の使用を避けなければなりません。 – MROB

+0

パスはスレーブマシン上にある必要があります。必要なすべてのjarファイルをスレーブにコピーする必要があることを意味します。かなりの数のjarファイルをコピーする必要があると思われます。私は試していませんが、あなたのスレーブにjarファイルを展開するカスタムツールを作成したいと思うかもしれません。それでも、あなたは "無料"のためにこれらのクラスをすべて取得するので、システムグルービィに移行することを検討したいかもしれません –

+0

システムgroovyに変更すると問題が解決しました。ありがとう! – MROB

関連する問題