You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins运行Groovy脚本遇MissingPropertyException(COUNTER属性)错误求助

解决Groovy脚本中MissingPropertyException: No such property: COUNTER错误

错误原因

Groovy的三重双引号字符串(""" """)会自动进行变量插值,你写的shell脚本里的$COUNTER、$numSubscriptionId被Groovy误认为是Groovy环境下的变量,但这些变量并没有在Groovy代码中定义,因此抛出MissingPropertyException。

解决方案

有两种可行的修改方式:

方式1:将shell脚本的三重双引号替换为三重单引号

单引号字符串在Groovy中不会进行变量插值,所有内容会原封不动传递给shell执行:

def runAzureMockExecution(Map m = [:]) {

    Map args = [
            ENDPOINT : "",
            action : "",
            vmCount : "",
            numSubscriptionId : "",
    ]

    args << m
    println(args)

    def ENDPOINT = args.ENDPOINT
    def action = args.action
    def vmCount = args.vmCount
    def numSubscriptionId = args.numSubscriptionId

    sh('''
        arr=();
        COUNTER=0
        while [  $COUNTER -lt $numSubscriptionId ]; do
        suffix=$RANDOM
        arr+=($suffix" ")
        let COUNTER=COUNTER+1
        done
    ''')
}


runAzureMockExecution(
                        ENDPOINT: "https://sample-url.com",
                        action: "ADD",
                        vmCount: 1,
                        numSubscriptionId: 5
                )

方式2:对shell变量的$符号进行转义

在每个shell变量的$前添加反斜杠,告诉Groovy这是shell的变量,不要进行插值:

def runAzureMockExecution(Map m = [:]) {

    Map args = [
            ENDPOINT : "",
            action : "",
            vmCount : "",
            numSubscriptionId : "",
    ]

    args << m
    println(args)

    def ENDPOINT = args.ENDPOINT
    def action = args.action
    def vmCount = args.vmCount
    def numSubscriptionId = args.numSubscriptionId

    sh("""
        arr=();
        COUNTER=0
        while [  \$COUNTER -lt \$numSubscriptionId ]; do
        suffix=\$RANDOM
        arr+=(\$suffix" ")
        let COUNTER=COUNTER+1
        done
    """)
}


runAzureMockExecution(
                        ENDPOINT: "https://sample-url.com",
                        action: "ADD",
                        vmCount: 1,
                        numSubscriptionId: 5
                )

内容的提问来源于stack exchange,提问作者nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 22:25:22