jenkins - groovy.lang.MissingPropertyException:没有此类属性:类的 Jenkins :groovy.lang.Binding

标签 jenkins groovy

我们正在升级到Jenkins(2.60.1)的新版本,并且在以前的Jenkins版本(1.596 / 2)中运行的groovy脚本不再起作用。

这是一个Jenkins构建项目,已参数化,我们正在使用Groovy脚本为Choice Provider提供选择(Choice Provider设置为System Groovy Choice Parameter)。

我们正在尝试访问Jenkins环境变量,并这样做(这是Groovy脚本的一部分):

import hudson.slaves.EnvironmentVariablesNodeProperty
import hudson.EnvVars

EnvironmentVariablesNodeProperty prop = jenkins.getGlobalNodeProperties().get(EnvironmentVariablesNodeProperty.class)
EnvVars env = prop.getEnvVars()

def MY_VAR = env['MY_JENKINS_VAR']


但是,运行脚本时出现以下错误:

Failed to execute script

groovy.lang.MissingPropertyException: No such property: jenkins for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)


在我看来,“ jenkins”引用应该是Jenkins或Groovy提供的内置属性,但是我找不到任何有关如何从Groovy脚本访问它的信息。

谢谢你的帮助。

最佳答案

正如@Jayan在另一篇文章中指出的,解决方案是执行以下操作

import jenkins.model.*
jenkins = Jenkins.instance


然后,我可以按原样完成其余脚本。

关于jenkins - groovy.lang.MissingPropertyException:没有此类属性:类的 Jenkins :groovy.lang.Binding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47064135/

相关文章:

java - 当奴隶试图联系它时, Jenkins 返回 403 禁止

docker - 在 Jenkins 中使用 docker 的最佳实践?

jenkins - 如何在 "diamond-join"Jenkins 构建管道中复制工件?

build - Jenkins Partial Build/Modular Build on Commit Hook

groovy - 如何在 Gradle API 文档中导航?

grails - Grails:如何查找域属性没有任何错误

Github Pull Request Builder - 无法触发构建并且无法在 github 提交上设置构建状态

java - JMeter - 无法在 JSR223 脚本中使用 Java 流

templates - 有没有关于在 Grails 应用程序中使用 sitemesh 的好的教程?

list - 使用循环将 map 元素添加到列表