我需要在Jenkins管道中解析一些JSON并在循环中调用一些常规方法,但是脚本总是在第一次函数调用之后退出。这个怎么做?Jenkins Groovy如何从@NonCPS方法调用方法而不结束管道
import groovy.json.JsonSlurper
import com.cloudbees.groovy.cps.NonCPS
@NonCPS
def myMethod(String json) {
def jsonSlurper = new JsonSlurper()
def jsonObject = jsonSlurper(json)
jsonObject.each {
obj ->
switch(obj.name) {
case "foo":
doAThing(obj)
break
case "bar":
doAnotherThing(obj)
break
}
}
}
在上述例子中,即使有一个JSON对象像:
[{
"name": "foo"
}, {
"name": "bar"
}]
...管道总是在第一次迭代之后退出。这大概是由于混合同步和异步功能。有没有办法做到这一点?
你有没有注意到错字:def jsonObject = jsonSurper(json)(在右半部分缺少“l”)? – izzekil
这只是一个错误的帖子,而不是实际的脚本......但好眼睛@izzekil –
你可能会遇到这样的:https://issues.jenkins-ci.org/browse/JENKINS-31314或这个:https: //issues.jenkins-ci.org/browse/JENKINS-26481 – izzekil