Jenkins Pipelines - 全局库支持无法识别变量

时间:2016-07-05 09:05:52

标签: jenkins groovy jenkins-workflow jenkins-pipeline

我已按照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脚本而不重启?

0 个答案:

没有答案