[英]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.