问题描述
在尝试在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 ‘:’”的错误。希望这个解决方案能帮助你解决问题。
正文完