标签: delivery-pipeline

Jenkins管道 - 如何遍历列表

我需要从管道中的文件中读取值.我正在使用split()将它们放入一个数组中.我需要将它们放入Arraylist中,所以我使用的是Arrays.asList().我遇到的问题是我无法使用size()length()方法,所以我不能做一个for循环,如

for (ii = 0; ii < var.length; ii++)
Run Code Online (Sandbox Code Playgroud)

要么

for (ii = 0; ii < var.size; ii++)
Run Code Online (Sandbox Code Playgroud)

因为我得到错误:unclassified field java.util.Arrays $ ArrayList length

所以我尝试在每个循环中使用a,但是当我在finally块中执行某些操作(例如ls命令)时,它只迭代1次.但是,如果我只是运行命令'echo',它将按照它应该的方式迭代每个元素.有关如何修改我的代码以使其在使用任何命令时对列表中的每个元素进行迭代的任何建议吗?

工作正常....

node{
    wrap([$class: 'ConfigFileBuildWrapper', managedFiles: [[fileId: 'dest_hosts.txt', targetLocation: '', variable: 'DEST_HOST']]]) {
        HOST = Arrays.asList(readFile(env.DEST_HOST).split("\\r?\\n"))
        deploy(HOST)
    }
}

@NonCPS
def deploy(host){
    for (String target : host){
        try {
            echo target
        }
        finally {
           echo target
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT(为每个元素迭代):

[Pipeline] node
Running …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins delivery-pipeline jenkins-pipeline

6
推荐指数
2
解决办法
3万
查看次数