【发布时间】:2020-02-01 23:05:37
【问题描述】:
我正在尝试在 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"
}
这是我在控制台中得到的:
捕获:groovy.lang.MissingPropertyException:没有这样的属性:Jenkins 类:hudson3067346520259876246 groovy.lang.MissingPropertyException:没有这样的属性:Jenkins 类:hudson3067346520259876246 在 hudson3067346520259876246.run(hudson3067346520259876246.groovy:17) 构建步骤“执行 Groovy 脚本”将构建标记为失败
有人可以帮我解决这个错误吗?提前致谢!
【问题讨论】:
-
有两种方式运行脚本——每一种完全不相关。 “Jenkins”变量仅适用于“系统 groovy 脚本”(和管道)。更多信息请参见:wiki.jenkins.io/display/JENKINS/Groovy+plugin
标签: jenkins groovy jenkins-groovy jenkins-slave