我已按照here的说明向我的Jenkins管道添加一些全局功能。我遵循提供的目录结构,我通过外部git存储库加载我的代码,而不是Jenkins本身提供的代码。虽然我可以在src目录下添加一些函数并按照说明正确加载,但是我无法加载在vars目录下添加的脚本。有没有办法了解正在发生的事情。我的示例groovy脚本非常简单:
// vars/hello.groovy
def call(name) {
echo "Hello world, ${name}"
}
我尝试按如下方式调用它
hello "foo"
我得到以下内容:
> java.lang.NoSuchMethodError: No such DSL method 'hello' found among
> [archive, bat, build, catchError, checkout, deleteDir, dir, echo,
> error, fileExists, git, input, isUnix, load, mail, node, parallel,
> properties, pwd, readFile, retry, sh, sleep, stage, stash, step, svn,
> timeout, tool, unarchive, unstash, waitUntil, withEnv, wrap,
> writeFile, ws] at
> org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:107) at
> org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:113)
> at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source) at
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
> at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)
>
>
>
有没有人遇到任何类似的问题以及我如何调试正在发生的事情? 我的詹金斯版本是:1.625.2
修改#1:
在重新启动脚本之后确实读取this之后,但是在每次更改时重新启动效率都不高。有没有其他解决方案加载vars / * .groovy脚本而不重启?