首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IllegalArgumentException:预期命名参数(Jenkins)

IllegalArgumentException:预期命名参数(Jenkins)
EN

Stack Overflow用户
提问于 2018-11-21 14:50:24
回答 1查看 8.5K关注 0票数 2

当我试图运行我的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)

我的代码是:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2018-11-21 17:51:00

您可以看到这个异常,因为在您的示例中,buildJobs是一个闭包列表,它应该是一个映射。使用后端服务名称作为传递给parallel()方法的映射的键是有意义的。考虑对代码的下列更改:

代码语言:javascript
复制
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)
    }
}

它调用

代码语言:javascript
复制
buildJobs.put(BACKEND_SERVICE, buildJob)

相反,

代码语言:javascript
复制
buildJobs.add(buildJob)

若要在parallel方法调用中创建被视为命名参数的映射,请执行以下操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53414654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档