在执行带有另一个变量的命令时使用变量值的正确Jenkinsfile
语法是什么?
例如:
def lastItemIndex = "${json.items.size()-1}"
def path = "${json.items[${lastItemIndex}].assets.downloadUrl}"
echo "${path}"
第一个变量是lastItemIndex
,第二个变量是json
。
当我尝试其他选项时,第二行无法正常运行。
答案 0 :(得分:1)
第二行中的语法通常很好。您的问题是您将lastItemIndex
的返回值存储为字符串,然后尝试在第二行代码中将其用作整数。
您可以使用以下方法修复第一行:
lastItemIndex = json.items.size() - 1
,然后它将是Integer类型,并且def path = "${json.items[lastItemIndex].assets.downloadUrl}"
将成功。
或者,您也可以使用第二行代码:
def path = "${json.items[-1].assets.downloadUrl}"
访问数组的最后一个元素。
请注意,通常,如果您需要通过Groovy在Jenkins管道内将字符串转换为整数,则可以使用to_Integer
方法。
答案 1 :(得分:0)
感谢Matt,最终这对我有用:
def lastItemIndex = json.items.size()-1
def path = json.items [lastItemIndex] .assets.downloadUrl