扩展Jenkins Groovy DSL

时间:2017-12-08 16:16:41

标签: jenkins groovy

如何在我的Jenkins实例中添加/编辑可以在DSL脚本中访问的新代码?上下文

我继承了Jenkins实例。继承的一部分包括在鬼屋中过夜通过in groovy编写一些新的自动化Jobs DSL plugin。由于我害怕破坏我们的jenkins实例,我的第一步是建立一个本地开发实例。

我在本地开发实例上运行现有的 DSL Scripts 时遇到问题 - 我在本地服务器上的构建在Jenkins错误控制台中失败,并显示以下内容。

Processing DSL script jobs.groovy
ERROR: startup failed:
jobs.groovy: 1: unable to resolve class thecompanysname.jenkins.extensions

有问题的剧本就是这样开始的。

import thecompanysname.jenkins.extensions

use(extensions) {
  def org = 'project-name'
  def project = 'test-jenkins-repo'
  def _email = 'foo@example.com'

所以,我可以说,似乎前任已经编写了一些他们正在导入的自定义Groovy代码

import thecompanysname.jenkins.extensions

我不清楚的是

  1. 此代码存在的地方
  2. 我如何在真正的Jenkins实例中找到它
  3. 如何添加到我的本地实例
  4. 欢迎具体的答案,因为我们在这里您可以学习如何捕捉答案。

1 个答案:

答案 0 :(得分:0)

虽然可能还有其他方法可以实现这一目标,但经过一番探索之后,我发现了

  1. 我安装的Jenkins实例安装了Jobs DSL plugin的旧版本。

  2. 此版本的Jobs DSL插件允许您在 Process DSL Builds 作业部分中设置额外的classpath,指向其他jar个文件。

  3. 这些jar文件可让您访问groovy脚本中的其他类(即thecompanysname.jenkins.extensions

  4. 不幸的是, Jobs DSL插件的更新版本已经删除了此选项,并且不清楚是否可以将其添加回来。然而,这是另一个问题。