2012-06-03 96 views
3

如果我想从常规脚本使用Jenkins插件,如何找到Jenkins插件的路径?从Groovy脚本访问Jenkins插件包

例如,只需在主站上测试,我希望能够使用NodeLabelParameter插件中的LabelParameterValue类。下面是我正在寻找的一个例子,(尽管它不起作用)。

currentParameters.add(new hudson.plugins.nodelabelparameter.LabelParameterValue(nodeName))

+0

我能够通过运行Groovy插件的Jenkins Groovy控制台和Groovy系统脚本来做你正在做的事情。我在Claim Plugin中使用了一个类。所以:(1)你如何运行Groovy脚本(2)插件是否加载? –

+1

我发现这在Jenkins控制台中有效,它可能在系统脚本中有效,但它在Groovy Postbuild中不起作用(可能是因为它没有在Jenkins主节点上运行)。我想现在的问题是我如何通过Groovy Postbuild脚本访问主人。 'import org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue'(取自Github上的软件包名称) – Louis

回答

2

在Postbuild Groovy脚本,你可以指定其他常规类路径。例如:/var/jenkins/plugins/claim/WEB-INF/classes索取插件代码。我试过了,它工作。

不幸的是,路径必须是绝对路径,并且不允许使用环境变量(例如${JENKINS_HOME})。另外,我不完全确定脚本在从站或主站上运行时的外观。

+1

这很好用。谢谢!对于任何专门寻找这个插件的人来说,它在'/ var/lib/jenkins/plugins/nodelabelparameter/WEB-INF/classes'中,其中'/ var/lib/jenkins /'应该用硬编码的Jenkins home替换。 我还应该提到,我找到了解决此问题的方法,即使用“执行系统Groovy脚本”构建步骤。您可以使用以下命令访问当前版本: 'def thr = Thread.currentThread(); def build = thr?.executable'并仍然导入没有classpath的包。 (学分:http://bit.ly/K6G3OS) – Louis

相关问题