我们创建一个新的Maven构建:

def rtMaven = Artifactory.newMavenBuild()


现在,我们想在与当前阶段不同的阶段重用该rtMaven。
就像下面的代码:

pipeline {
agent any

...
stages {

    stage('stage1') {
        steps {
            script {
                def rtMaven = Artifactory.newMavenBuild()
            }
    }

    stage('stage2') {
         steps {
            script {
                //REUSE rtMaven (now it's unknown)
            }
         }

     }
}


是否可以在第二阶段重用rtMaven而不重新定义它?

现在我们有一个错误,例如:

groovy.lang.MissingPropertyException: No such property: rtMaven for class: groovy.lang.Binding

最佳答案

在全局范围内定义变量

def rtMaven = ''
pipeline {
    agent any
    stages {
        stage('stage1') {
            steps {
                script {
                    rtMaven = Artifactory.newMavenBuild()
                }
            }
        }
    }
    stage('stage2') {
        steps {
            script {
                echo "$rtMaven"
            }
        }
    }
}

07-26 02:23