Jenkins Job DSL 插件:如何创建嵌套视图?示例对我不起作用

Jenkins Job DSL plugin: How do I create a nested view? Example doesn't work for me

我正在使用 Job DSL 插件生成我们所有的视图。

列表视图创建时没有问题,但现在我在替换嵌套视图时遇到了问题。

如果我从 https://jenkinsci.github.io/job-dsl-plugin/#path/nestedView 复制并粘贴示例,我会收到以下错误:

ERROR: (ViewsGenerator.groovy, line 23) No signature of method: groovy.util.slurpersupport.NodeChild.call() is applicable for argument types: (foobar.jenkins.views.generator.ViewsGenerator$_run_closure1$_closure5) values: [foobar.jenkins.views.generator.ViewsGenerator$_run_closure1$_closure5@4e414e59]
Possible solutions: tail(), wait(), name(), max(), last(), any()

第 23 行是

  views {

如果我只是用

nestedView('ZZZ_project-a') {
}

然后 Jenkins 生成具有该名称的嵌套视图,但它当然是空的!

我一定是在以错误的方式做一些非常基本的事情:-)但我想不通!有什么想法吗?


我现在尝试在作业 DSL 生成器作业 (Use the provided DSL script) 中直接使用给定的示例,并且成功了!

我的 Groovy 脚本和文本框中的脚本有什么区别?

好的,在 table 上苦思冥想 :-) 我终于找到了解决方案。

像往常一样,问题出在我的软件上:-)

我有一个名为 Views 的助手 class,它读取一些 XML 等等。 那里有一个名为 getViews() 的方法。 为了方便起见,我通常使用

导入这样的助手 classes
 import static Views.*

因此,在 Job DSL 的 nestedView 中有 views,显然 Groovy 对使用什么 views 感到困惑,来自 Job DSL 或我的 getViews().

我将该方法重命名为getAllViews(),问题就解决了。

但是到达那里(我绝不是 Groovy 专家)是一个非常艰难的经历,因为错误消息对我来说非常神秘。