Groovy .each只迭代一次

Nic*_*ith 13 groovy jenkins jenkins-pipeline

该脚本不会遍历'modules'数组的所有值.

class Module {
    public String name = '';
    public Boolean isCustom = false;
    public Module(String name, Boolean custom){
        this.name = name;
        this.isCustom = custom;
    }
}

//creates array from the ext_module env var
modules = [];
EXT_MODULE.split(',').each { 
    modules.add(new Module(it, false));
}


println modules;
modules.each {  
    println "MODULE NAME ::::: ${it.name}"
    if(it.isCustom)
    {
        println "install custom";
    } else {
        println "install non custom";
    }
};
Run Code Online (Sandbox Code Playgroud)

这是运行的结果.该数组显示4个元素,但.each黑色内的代码只执行一次.

运行:打印消息[Module @ 71f09325,Module @ e1ddb41,Module @ 7069a674,Module @ 1f68f952]
运行:打印消息MODULE NAME ::::: puppetlabs-ntp
运行:打印消息安装非自定义
运行:
完成工作流程结束:成功

小智 9

消息"正在运行:打印消息"和"正在运行:工作流程结束"表示您正在使用新的工作流插件:https://wiki.jenkins-ci.org/display/JENKINS/Workflow+Plugin.这个插件目前有一个错误导致至少一些Groovy迭代涉及一次迭代后中止的闭包:https://issues.jenkins-ci.org/browse/JENKINS-26481