2017-05-09 146 views
1

我在詹金斯中使用多分支插件並輪詢我的git倉庫以查看是否有任何更改。我的問題是,當它輪詢時,我的$ GIT_BRANCH_NAME變量不存在,構建失敗。檢查屬性是否存在Groovy

groovy.lang.MissingPropertyException: No such property: GIT_BRANCH_NAME for class: groovy.lang.Binding 
    at groovy.lang.Binding.getVariable(Binding.java:63) 

我試圖檢查

if (!bindings.hasProperty(GIT_BRANCH_NAME)){ 
echo "Why is this not working" 
env.GIT_BRANCH_NAME = sh(script: "git rev-parse HEAD", returnStdout: true).trim() 
} 

if (!project.hasProperty(GIT_BRANCH_NAME)){ 
    echo "Why is this not working" 
    env.GIT_BRANCH_NAME = sh(script: "git rev-parse HEAD", returnStdout: true).trim() 
    } 

它不工作,雖然。任何幫助表示讚賞

+3

難道不是'hasProperty(「GIT_BRANCH_NAME」)'? – Opal

+0

這給出了一個錯誤 - >'groovy.lang.MissingPropertyException:類項目:無財產groovy.lang.Binding \t在groovy.lang.Binding.getVariable(Binding.java:63) \t在org.jenkinsci .plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)' – Illusionist

回答

1

在這裏你去:

if (!bindings.properties."${GIT_BRANCH_NAME}")){ 
    echo "Why is this not working" 
    env.GIT_BRANCH_NAME = sh(script: "git rev-parse HEAD", returnStdout: true).trim() 
} 

UPD:

據我瞭解的問題是,你的類沒有既不bindings,也不projectGIT_BRANCH_NAME變量聲明(或者它們沒有從外部傳遞到綁定中)。是否有可能發佈整個類和可能的腳本執行者(綁定或類似的)?

+0

這給出了一個錯誤 - > 'groovy.lang.MissingPropertyException:沒有這樣的屬性:類綁定:groovy.lang.Binding \t在groovy.lang.Binding.getVariable(Binding.java:63) \t at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)' – Illusionist

+2

這是否意味着你正在嘗試得到一個失蹤的財產fr om缺失的屬性? –

+1

哈哈是的。我現在通過禁用自動更新來避開它。 – Illusionist