groovy.lang.MissingPropertyException: 没有这样的 属性: Jenkins for class: hudson

groovy.lang.MissingPropertyException: No such property: Jenkins for class: hudson

我正在尝试 运行 Jenkins 从属节点中的 groovy 脚本以从 Jenkins 从属节点中的文件夹中检索子作业。这是我试过的 groovy 脚本:

我尝试了一些 SO 答案并找到了

但这并不能解决我的问题。

请找到我试过的代码:

import groovy.json.JsonSlurper
import groovy.json.JsonBuilder
import jenkins.model.*

static main(args){

    def childJobFolder = "childJob"
    def childJobNameList = []

    def env = System.getenv()

    // Setting the environment properties to variables.
    def jenkinsUsername = env.UAT_JENKINS_MY_USER
    def jenkinsPassword = env.UAT_JENKINS_MY_PASS

    def jsonSlurper = new JsonSlurper()

    // Getting the child job names from "childJob" folder
    Jenkins.instance.getItemByFullName(childJobFolder).allJobs.each{
        def childJobName = it.name.toString()
        if(childJobName.startsWith("job-")){
            childJobNameList.add(childJobName)
        }
    }

    println "\n" + "Child Jobs Available: " + childJobNameList + "\n"

}

这是我在控制台中得到的:

Caught: groovy.lang.MissingPropertyException: No such property: Jenkins for class: hudson3067346520259876246 groovy.lang.MissingPropertyException: No such property: Jenkins for class: hudson3067346520259876246 at hudson3067346520259876246.run(hudson3067346520259876246.groovy:17) Build step 'Execute Groovy script' marked build as failure

有人可以帮我解决这个错误吗?提前致谢!

终于,我找到了这个错误的解决方案。这是由 运行 在普通 groovy 脚本而不是系统 groovy 脚本上引起的。正如 Jayan 所说,Jenkins 变量仅适用于系统 groovy 脚本,不适用于普通 groovy 脚本。出于这个原因,我无法从普通 groovy 脚本加载 Jenkins 实例。