2016-05-10 62 views
0

我试图在Jenkins的奴隶上使用Groovy插件执行一个简单的groovy脚本。 我正在使用执行groovy脚本选项和不是执行系统groovy脚本选项。我还使用最新版本(2.4.6)的插件的“自动安装”(从常规网站安装)选项。然而,工作失败,我得到这个:在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 

我怎样才能克服这个问题,并使其正常工作?

回答

0

Groovy plugin page

Groovy脚本VS系统Groovy脚本 平原“Groovy脚本”在分叉JVM运行时,在那里,并在运行的奴隶。这与运行“groovy”命令并传递脚本基本相同。 系统groovy脚本OTOH在Jenkins主JVM中运行。因此它可以访问Jenkins的所有内部对象,所以你可以用它来改变Jenkins的状态。它类似于Jenkins脚本控制台功能。

当不使用系统Groovy时,您的类路径中没有Jenkins对象。您需要确保所需的类可以从正在运行的作业中访问,并将它们传递到“execute groovy script”步骤的“Class path”字段中。

+0

路径应该在哪里,奴隶本身或其他地方?我的代码应该在slave上运行,所以如果我正确理解你,我只需要避免使用“import jenkins.model.Jenkins”? – MROB

+0

路径应该在从属机器上。这意味着您需要将所有必需的jar文件复制到从站。看起来你需要复制好几个jar文件 - 我没有尝试,但你可能想创建一个自定义的工具,将jar部署到你的奴隶。不过,你可能会考虑转向系统时髦,因为你得到所有这些类“免费” –

+0

改变系统groovy修复了这个问题。谢谢! – MROB

相关问题