作为Jenkins参数的无限数组

作为Jenkins参数的无限数组,jenkins,jenkins-plugins,jenkins-groovy,Jenkins,Jenkins Plugins,Jenkins Groovy,我试图创建一个Jenkins作业,该作业在其中遍历一个值数组。数组项的数量不是固定的,在后续生成中可能会有所不同 例如,我的作业遍历以下数组值集: ServerName:server1.example.com IP:1.1.1.1用户:荷马 ServerName:server2.example.com IP:2.2.2.2用户:Bart ServerName:serverN.example.com IP:x.x.x.x用户:Ned 作业使用值{ServerName:server1.examp

我试图创建一个Jenkins作业,该作业在其中遍历一个值数组。数组项的数量不是固定的,在后续生成中可能会有所不同

例如,我的作业遍历以下数组值集:

ServerName:server1.example.com IP:1.1.1.1用户:荷马

ServerName:server2.example.com IP:2.2.2.2用户:Bart

ServerName:serverN.example.com IP:x.x.x.x用户:Ned

作业使用值{ServerName:server1.example.com、IP:1.1.1、user:Homer}运行第一次迭代,使用值{ServerName:server2.example.com、IP:2.2.2、user:Bart}运行第二次迭代,直到N次迭代

这里,重要的一点是N不是固定的

我用JSON/groovy查看了extended choice参数,但没有找到解决数组项数量变化问题的方法


在这个场景中是否有可以使用的插件,如果有,正确的用法是什么?

我使用
字符串参数
,在我的管道脚本中,我使用
脚本
块分割字符串,默认情况下,它在换行符或空格上分割,这是我所需要的。看起来您需要一个特殊的拆分字符,请注意groovy支持将正则表达式拆分为。也许你可以用一个
|
字符,然后在上面拆分

"{ServerName: server.example.com, IP: 1.1.1.1, user: Bart1}|{ServerName: server2.example.com, IP: 2.2.2.2, user: Bart2}"
那你就可以做了

script {
    def list = "${StringParamName}".split('|')

    // Can NOT use `for (var_item in list)` because of NotSerializableException
    for (int i = 0; i < list.size(); i++) {
        def item = list[i]
        // Do work with "${item}"
    }
}
脚本{
def list=“${StringParamName}”.split('|')
//由于NotSerializableException,无法使用`for(列表中的var_项)`
对于(int i=0;i