在我的主管道作业中,我有一组值,每个值我都需要触发另一个作业
def map = [FRA1: "192.168.1.1", DEL: "192.168.1.2", NYC: "192.168.1.3"]
for (element in map) {
echo "${element.key} ${element.value}"
stage("Triggering another job- ${element.key}")
build job: 'testjobcheck', parameters: [string(name: 'DC-NAME', value:
"${element.value}")
]
}
但得到以下异常
an exception which occurred:
in field com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
in object com.cloudbees.groovy.cps.impl.LoopBlockScopeEnv@71f4bf38
in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@2a24a0f
in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@5863a030
in field com.cloudbees.groovy.cps.impl.CpsClosureDef.capture
in object com.cloudbees.groovy.cps.impl.CpsClosureDef@df1925c
in field com.cloudbees.groovy.cps.impl.CpsClosure.def
in object org.jenkinsci.plugins.workflow.cps.CpsClosure2@4ab0695
in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.closures
in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@107c4dba
in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@107c4dba
Caused: java.io.NotSerializableException: java.util.LinkedHashMap$Entry
有人可以帮忙吗?
答案 0 :(得分:0)
见JENKINS-49732。 当管道尝试保存(序列化)当前状态时,java.util.LinkedHashMap$Entry 出现序列化失败。
作为一种解决方法,您可以使用:
def map = [FRA1: "192.168.1.1", DEL: "192.168.1.2", NYC: "192.168.1.3"]
map.each { key, value ->
echo "${key} ${value}"
stage("Triggering another job- ${key}"){
build job: 'testjobcheck', parameters: [string(name: 'DC-NAME',value: "${value}")]
}
}
小事:当使用 stage
块时,将它与 {}
一起使用,因为不推荐使用不带块参数的“stage”步骤。