小编Dán*_*lay的帖子

如何从帮助程序类访问Job DSL的readFileFromWorkspace?

我在Job DSL中有大量的Jenkins作业定义,它们都依赖于我在helper类中实现的一些常用功能.这是jobDsl运行这些脚本的步骤的本质:

jobDsl {
  additionalClasspath('jobdsl/src/main/groovy')
  targets('jobdsl/*.groovy')
  sandbox(true)
}
Run Code Online (Sandbox Code Playgroud)

其中一个辅助类jobdsl/src/main/groovy需要从工作区读取文件,但无法访问该readFileFromWorkspace函数.

所以这个不行:

class MyHelper {
  static Closure processFile(String src) {
    ...
    def txt = readFileFromWorkspace(src)
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我必须改为使用一个闭包参数:

class MyHelper {
  static Closure processFile(String src, Closure rffw) {
    ...
    def txt = rffw(src)
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

这使得调用此帮助程序的代码变得臃肿:

MyHelper.processFile('foo.txt', { readFileFromWorkspace(it) })
Run Code Online (Sandbox Code Playgroud)

有没有办法让我的课看到readFileFromWorkspace?实际上,我甚至无法弄清楚这个函数属于哪个类.或者它是一个真正的功能还是由DSL定义的"神奇"的东西.

groovy jenkins jenkins-job-dsl

3
推荐指数
1
解决办法
972
查看次数

标签 统计

groovy ×1

jenkins ×1

jenkins-job-dsl ×1