Ane*_*ran 18 groovy hudson maven hudson-plugins jenkins
我试图在Hudson中调用Groovy(使用groovy插件)来获取构建的一些属性.但是我得到了这个例外:
groovy.lang.MissingPropertyException:没有这样的属性:类的经理:Script1
我用以下行得到这个:
def buildNUmber = manager.build.number
Run Code Online (Sandbox Code Playgroud)
当我在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);
Run Code Online (Sandbox Code Playgroud)
以上是使用:Groovy命令运行.当我运行构建时,它会出错并抱怨该行 - binding.setVariable("manager", manager);
当我使用Groovy脚本文件时,它抱怨:
def buildNumber = manager.build.number
Run Code Online (Sandbox Code Playgroud)
这两个错误都是:groovy.lang.MissingPropertyException:没有这样的属性:类的经理:Script1
尝试了这个线程中提到的所有内容:
我正在使用Hudson 2.2.1和Groovy 2.1.3.可能有什么不对?
Cra*_*aig 19
manager由某些Groovy脚本插件提供,但不是全部.要使您的脚本具有通用性,请改用Jenkins/Hudson API:
import hudson.model.*
def build = Thread.currentThread().executable
def buildNumber = build.number
...
Run Code Online (Sandbox Code Playgroud)
小智 6
如果它有用,如果你使用'Execute System Groovy Script',你不需要使用'manager'变量.这对我有用 -
def workspace = build.getEnvVars()["WORKSPACE"]
Run Code Online (Sandbox Code Playgroud)
也许我遗漏了你的代码的某些部分,但是你在哪里定义管理器?如果这是完整的 Groovy 脚本,您将尝试绑定一个未声明任何内容的变量,因此失败也就不足为奇了。
只需定义一个经理,这就是您想要的,例如:
def manager = "my manager" // probably not what you want
Run Code Online (Sandbox Code Playgroud)
这应该可以解决您当前的错误。
| 归档时间: |
|
| 查看次数: |
80562 次 |
| 最近记录: |