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

Jenkinsfile嵌套循环问题:如何去除列表项的括号

解决Jenkins Pipeline中列表配对的括号问题

问题出在你用[drink].transpose()的写法上——[drink]会把原drink列表包裹成一个二维列表,所以each循环里的drinks其实是单元素的子列表(比如[water]),输出自然会带括号。

直接简化循环逻辑,遍历drink原列表即可解决:

def food = ["eggs","chips"]
def drink =["water","juice","cola"]
def meal = []

for (String fd : food){
    // 直接遍历drink列表,拿到单个饮料元素
    drink.each { dr ->
        meal.add("Food: ${fd}, Drinks: ${dr}")
    }
}

pipeline {
    agent any

    stages {
        stage('Results') {
            steps {
                echo 'Results'
                echo "${meal}"
            }
        }
    }
}

运行结果会变成:

Results
[Pipeline] echo
[Food: eggs, Drinks: water, Food: eggs, Drinks: juice, Food: eggs, Drinks: cola, Food: chips, Drinks: water, Food: chips, Drinks: juice, Food: chips, Drinks: cola]
[Pipeline] }

另外,如果你想更贴合Groovy风格,还可以用collectMany简化列表生成,避免手动循环添加元素:

def food = ["eggs","chips"]
def drink =["water","juice","cola"]
def meal = food.collectMany { fd ->
    drink.collect { dr -> "Food: ${fd}, Drinks: ${dr}" }
}

pipeline {
    agent any

    stages {
        stage('Results') {
            steps {
                echo 'Results'
                echo "${meal}"
            }
        }
    }
}

这个写法更简洁,最终效果和手动循环完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:10:12