Groovy与groovy.lang之间存在Groovy问题,缺少方法异常:无方法签名

tjvv9vkg  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(412)

第一个
我是Groovy新手,正在尝试处理遗留代码,我遇到了一些类似这样的代码
实际上,我不知道它代表什么,它是指一个函数吗?folder和pipelineJob是默认方法吗?还是只是一个函数名。
我收到这些错误消息,但不知道在哪里可以修复它

Caught: groovy.lang.MissingMethodException: No signature of method: seed.folder() is applicable for argument types: (String, seed$_run_closure1$_closure3) values: [AAA, seed$_run_closure1$_closure3@3f93e4a8]
Possible solutions: collect(), find()
groovy.lang.MissingMethodException: No signature of method: seed.folder() is applicable for argument types: (String, seed$_run_closure1$_closure3) values: [AAA, seed$_run_closure1$_closure3@3f93e4a8]
Possible solutions: collect(), find()
        at seed$_run_closure1.doCall(seed.groovy:35)
        at seed.run(seed.groovy:31)
of1yzvn4

of1yzvn41#

我想你要从这里开始:
https://github.com/jenkinsci/job-dsl-plugin/blob/master/docs/Job-DSL-Commands.md#folder
Folder是Pipeline DSL上的一种方法,但它需要您正确安装Cloudbees插件才能使用(您可能没有正确设置环境)。
是的,这是一个函数调用,后面的花括号是一个闭包(比如javascript()=〉println('yeah!')中的胖箭头函数)。Groovy在闭包方面有强大的功能,但是它是非常动态的,所以很难在IDE中通过代码辅助来解决问题。你必须阅读文档来解决大多数问题。
例如,描述也将是功能(没有括号),下一个文字是它的参数。但是,它在什么对象上调用该函数呢?嗯,这就是问题所在。它可能是Folder对象,但是它要么是闭包this指向的对象,要么是委托。Groovy开发人员可以注解闭包等,以便IDE可以提供帮助,但并不是每个开发人员都能谨慎地正确注解内容。

相关问题