访问闭包内的变量时Jenkins工作流错误

时间:2015-11-04 16:18:03

标签: groovy jenkins jenkins-workflow

我在包含闭包的Jenkins Workflow脚本中使用了一些groovy。

def newMarkup = new StreamingMarkupBuilder().bind {
   mkp.yield(xml)
}.toString()

据我所知,mkp应该是使用StreamMarkupBuilder时在闭包内可用的变量,但是当我尝试运行它时,我得到了错误,

groovy.lang.MissingPropertyException: No such property: mkp for class: WorkflowScript

所以我的问题是为什么Jenkins不认识mkpStreamMarkupBuilder类的属性而不是工作流脚本?

1 个答案:

答案 0 :(得分:0)

听起来像i.e. [ (D1, 2, 3, None), (D2, 3, None, 1), ... ] 中的错误。尝试将您的逻辑封装在标有groovy-cps注释的方法中。如果它开始工作,则@NonCPS应该受到责备,你可以在groovy-cps组件中的Jenkins JIRA中提交一个错误,并提供重现步骤,尽管我怀疑即使修复了workflow-plugin由于JENKINS-26481,代码仍然无法运行。