当我试图运行我的jenkins工作时,我得到了以下错误。任何帮助都将不胜感激。
org.jenkinsci.plugins.workflow.cps.CpsClosure2@33c7c4a6,org.jenkinsci.plugins.workflow.cps.CpsClosure2@79505a8c,org.jenkinsci.plugins.workflow.cps.CpsClosure2@6a96df3,org.jenkinsci.plugins.workflow.cps.CpsClosure2@1a0cb771,:预期的命名参数org.jenkinsci.plugins.workflow.cps.CpsClosure2@17e3a262 at org.jenkinsci.plugins.workflow.cps.DSL.singleParam(DSL.java:606) at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:594) at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:534) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:219) at org.jenkinsci.plugins.workflow.cps.org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122) at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source的DSL.invokeMethod(DSL.java:178)
我的代码是:
node("dvsacvsmgmt") {
stage("Build") {
def buildJobs = []
for (BACKEND_SERVICE in BACKEND_SERVICES) {
SVC = BACKEND_SERVICE.replaceAll('-','_')
switch (BRANCH_SVC) {
case ["develop","master"]:
def buildJob = {
build "${ROOT_FOLDER}/2_Build/Backend/${SVC}/job_build_backend_" + BRANCH_SVC + "_" + SVC +".groovy"
}
buildJobs.add(buildJob)
break
default:
def buildJob = {
build "job_${SVC}": "${ROOT_FOLDER}/2_Build/Backend/${SVC}/job_build_backend_" + BRANCH_SVC + "_" + SVC +".groovy",
parameters: [gitParameter(name: "BRANCH", value: BRANCH_SVC)]
}
buildJobs.add(buildJob)
break
}
}
parallel(buildJobs)
}
}注意:我的变量是在顶部定义的,
分支,BRANCH_SVC,ROOT_FOLDER,BACKEND_SERVICES
发布于 2018-11-21 17:51:00
您可以看到这个异常,因为在您的示例中,buildJobs是一个闭包列表,它应该是一个映射。使用后端服务名称作为传递给parallel()方法的映射的键是有意义的。考虑对代码的下列更改:
node("dvsacvsmgmt") {
stage("Build") {
def buildJobs = [:]
for (BACKEND_SERVICE in BACKEND_SERVICES) {
SVC = BACKEND_SERVICE.replaceAll('-','_')
switch (BRANCH_SVC) {
case ["develop","master"]:
def buildJob = {
build "${ROOT_FOLDER}/2_Build/Backend/${SVC}/job_build_backend_" + BRANCH_SVC + "_" + SVC +".groovy"
}
buildJobs.put(BACKEND_SERVICE, buildJob)
break
default:
def buildJob = {
build "job_${SVC}": "${ROOT_FOLDER}/2_Build/Backend/${SVC}/job_build_backend_" + BRANCH_SVC + "_" + SVC +".groovy",
parameters: [gitParameter(name: "BRANCH", value: BRANCH_SVC)]
}
buildJobs.put(BACKEND_SERVICE, buildJob)
break
}
}
parallel(buildJobs)
}
}它调用
buildJobs.put(BACKEND_SERVICE, buildJob)相反,
buildJobs.add(buildJob)若要在parallel方法调用中创建被视为命名参数的映射,请执行以下操作。
https://stackoverflow.com/questions/53414654
复制相似问题