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

Jenkins声明式流水线:列表for循环遍历失败问题

问题分析与解决方案

问题根源

你混淆了Groovy局部变量和Jenkins环境变量上下文env:

  • 你定义的NFS_VERS是Groovy局部列表变量,并未存入env环境变量中
  • 循环时错误遍历env.NFS_VERS,由于该环境变量不存在,Jenkins会做隐式处理,导致整个列表被当作单个循环元素,最终每次echo都输出完整列表内容

修正代码

将循环遍历的目标改为你定义的Groovy局部变量NFS_VERS即可,同时注意Jenkins环境变量均为字符串类型,建议显式转换数值:

def CURR_VER
def NFS_VERS = [2, 3, 4, 4.1]

for (i in NFS_VERS) {
    // 显式将数值转为字符串存入环境变量
    env.CURR_VER = String.valueOf(i)
    echo env.CURR_VER
    
    // 若无需后续使用环境变量,直接用Groovy局部变量更高效
    // CURR_VER = i
    // echo "${CURR_VER}"
}

额外说明

  • Jenkins的env对象存储的所有环境变量值均为字符串类型,直接赋值数值会自动转换,但显式转换可避免潜在类型问题
  • 如果只是临时使用变量,优先用Groovy局部变量,减少环境变量的序列化/反序列化开销

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:35:05