在Jenkins中解决Groovy脚本语法错误

192次阅读
没有评论

问题描述

在尝试在Jenkinsfile中构建Groovy代码时遇到了一个错误:WorkflowScript: 17: expecting ‘}’, found ‘:’ @ line 17, column 11。他希望能够得到修复此错误的建议。

解决方案

该错误提示在Groovy脚本的语法中,期望找到一个'{‘,但在第17行的第11列发现了一个’:’。根据Groovy语言的规则,map(字典)的定义中,键(key)不应该用双引号包围。

在用户提供的代码中,错误出现在如下部分:

"data": {            
    "attributes": {              
        "vcs-repo": {

正确的写法应该去掉键名的双引号,如下所示:

data: {            
    attributes: {              
        "vcs-repo": {

这样可以修复这个语法错误。以下是在Jenkinsfile中正确修复错误的示例:

#!groovy
env.BEARER_TOKEN = "uuuuuuuuuu"

node {
    publishModule()
}

def publishModule() {
    stage('Deploy Modules') {
        // 这里放置其他操作
    }
}

def buildPayload() {
    def payload = {
        data: {
            attributes: {
                "vcs-repo": {
                    "identifier":"nnnnnn",
                    "oauth-token-id":"hhhhhh",
                    "display_identifier":"nnnnnn"
                },
                "no-code": true
            },
            type: "registry-modules"
        }
    }
}

def deployModules() {
    def payload = buildPayload()
    def response = httpRequest(
        customHeaders: [
            [name: "Authorization", value: "Bearer " + env.BEARER_TOKEN],
            [name: "Authorization", value: "application/vnd.api+json"]
        ],
        httpMode: 'POST',
        responseBody: "${payload}",
        url: "https://app.terraform.io/api/v2/organizations/my-organization/registry-modules/vcs"
    )
}

请注意,修复后的代码将不再出现“expecting ‘}’, found ‘:’”的错误。希望这个解决方案能帮助你解决问题。

正文完