[英]groovy.lang.MissingPropertyException: No such property: manager for class: Script1
我正在尝试在 Hudson 中调用 Groovy(使用 groovy 插件)来为我们的构建获取一些属性。 但我收到此异常:
groovy.lang.MissingPropertyException:没有这样的属性:类经理:Script1
我通过以下行得到了这个:
def buildNUmber = manager.build.number
当我在 Jenkins 中作为内联命令运行以及使用脚本时会发生这种情况:
我尝试了下面的解决方案,但在声明过程中失败了(第二行):
Binding binding = new Binding();
binding.setVariable("manager", manager);
GroovyShell shell = new GroovyShell(binding);
shell.evaluate(new File("d:/dev/others/hudson/userContent/ScriptStuff.groovy").text);
以上是使用:Groovy 命令运行的。 当我运行构建时,它会出错并抱怨该行 - binding.setVariable("manager", manager);
当我使用 Groovy 脚本文件时,它会抱怨:
def buildNumber = manager.build.number
这两个错误是:
groovy.lang.MissingPropertyException:没有这样的属性:类经理:Script1
也尝试了此线程中提到的所有内容:
我正在使用 Hudson 2.2.1 和 Groovy 2.1.3。 可能有什么问题?
manager
由某些 Groovy 脚本插件提供,但不是全部。 要使您的脚本通用,请改用 Jenkins/Hudson API:
import hudson.model.*
def build = Thread.currentThread().executable
def buildNumber = build.number
...
以防万一,如果您使用的是“执行系统 Groovy 脚本”,则不需要使用“管理器”变量。 这对我有用-
def workspace = build.getEnvVars()["WORKSPACE"]
groovy.lang.MissingPropertyException:的原因之一是在您使用其范围之外的变量或尚未定义该变量时抛出。
也许我遗漏了您的代码的某些部分,但是您在哪里定义经理? 如果这是完整的 Groovy 脚本,那么您正在尝试绑定一个未声明任何内容的变量,因此它失败也就不足为奇了。
只需定义一个您想要的经理,例如:
def manager = "my manager" // probably not what you want
这应该可以解决您当前的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.