簡體   English   中英

groovy.lang.MissingPropertyException:沒有這樣的屬性:類經理:Script1

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM