jenkins - 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'将构建标记为失败
有人可以帮我解决这个错误吗?提前致谢!
解决方案
最后,我找到了这个错误的解决方案。这是由于在普通 groovy 脚本而不是系统 groovy 脚本上运行造成的。正如 Jayan 所说,Jenkins 变量仅适用于系统常规脚本,不适用于普通常规脚本。出于这个原因,我无法从普通的 groovy 脚本中加载 Jenkins 实例。
推荐阅读
- asp.net - 从复选框列表向多个号码发送短信
- javascript - JavaScript 按可空布尔值排序数组,然后是字符串
- installation - 无法在 Windows 10 版本 1903 上安装 Chocolatey
- asp.net - 子目录的 web 配置设置和身份验证问题
- sql - 我们可以在选择语句中使用 Map(col1,col2)
- c++ - 如何在 C++ 中使用 setiosflags 将十进制数打印为八进制数
- rxjs - Rxjs - 如何让 concatMap 排队的 observables?
- mysql - 在一个查询中根据不同的 GROUP BY 选择计数
- vue.js - 如何获取 API 响应状态代码以突出显示 v-text-field
- css - 使用 BeautifulSoup 时丢失信息