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

问题描述

我正在使用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)用该名称生成嵌套视图,但是它当然是空的!

我必须以一种错误的方式来做一些非常基础的事情:-),但是我无法弄清楚!有什么想法吗?


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

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

解决方法

好吧,在桌子上敲了很多头之后:-)我终于找到了解决方法。

通常,问题出在我的软件上:-)

我有一个名为Views的帮助程序类,该类读取一些XML等。 那里有一个叫做getViews()的方法。 为了方便起见,我通常使用这样的帮助器类导入

 import static Views.*

因此,在作业DSL的nestedView中有views,显然Groovy对使用的views,作业DSL或我的getViews()中的getAllViews()感到困惑

我将该方法重命名为{{1}},问题得以解决。

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