首页 > 解决方案 > groovy.lang.MissingPropertyException:没有这样的属性:Jenkins for class:hudson

问题描述

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

我尝试了一些 SO 答案,发现groovy.lang.MissingPropertyException: No such property: jenkins for class: groovy.lang.Binding

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

请找到我尝试过的代码:

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'将构建标记为失败

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

标签: jenkinsgroovyjenkins-groovyjenkins-slave

解决方案


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


推荐阅读