Jenkinsfile中的循环问题

时间:2019-05-23 11:59:45

标签: jenkins-pipeline jenkins-groovy

我的Jenkinsfile中的一个变量包含一个URL列表,我希望能够在它们上运行。当我将变量$ URL传递给函数时,出现错误:

No such property: $URL for class: groovy.lang.Binding 

但是,我可以使用sh来回显此变量。

pipeline {
        agent any
        environment {
            URL="https://www.aaa.com," \
            + "https://www.bbb.com," \
            + "https://www.ccc.com"
        }
        stages {
            stage ('A') {
                //...
            }
            stage ('B') {
                //...
            }
            stage ('C') {
                steps {
                    script {
                        sh 'echo $URL'
                        funcion($URL)
                    }
                }
            }
        }
    }



    def funcion(URL) {
        sh "echo Going to echo a list"
        for (int i = 0; i < URL.size(); i++) {
            sh "echo ${URL[i]}"
        }
    }

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

您应该将此变量传递给funcion()方法,

function(URL)

代替

funcion($URL)

要插入变量时,仅在$内部使用美元符号GString。例如

#!groovy

def name = "Joe"
println "My name is $name"

结果

My name is Joe

您可以在Groovy文档-http://groovy-lang.org/syntax.html#_string_interpolation

中了解有关字符串插值的更多信息。