groovy.lang.MissingPropertyException: No such property: COUN



我试图在Jenkins中运行groovy脚本,但我得到这个错误:groovy.lang.MissingPropertyException: No such property: COUNTER for class

脚本如下:

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
)
这里有人能帮我吗?我也尝试在在线编译器中运行相同的脚本,但得到了与上面相同的错误。

Groovy试图在您的sh块中插入变量,因为您没有任何变量定义为COUNTER,它失败了。只需转义COUNTER和其他变量,如下所示。

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

另一种选择是将所有内容作为环境变量传递,并通过用单引号包围sh脚本来避免字符串插值。

相关内容

最新更新