我们正在升级到更新版本的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']
Run Code Online (Sandbox Code Playgroud)
但是,运行脚本时出现以下错误:
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)
Run Code Online (Sandbox Code Playgroud)
在我看来,"jenkins"引用应该是由Jenkins或者Groovy提供的内置属性,但我找不到任何有关我需要做什么的信息才能从Groovy脚本中访问它.
谢谢你的帮助.
请仔细检查 jenkins 是否没有阻止此导入。转到脚本批准并检查它是否阻止它。如果是点击允许。
https://jenkins.io/doc/book/managing/script-approval/
正如@Jayan在另一篇文章中指出的那样,解决方案是执行以下操作
import jenkins.model.*
jenkins = Jenkins.instance
Run Code Online (Sandbox Code Playgroud)
然后我就能按原样完成剩下的脚本编写.
| 归档时间: |
|
| 查看次数: |
75957 次 |
| 最近记录: |