我在Jenkins中使用多分支插件,并轮询我的git repo以查看是否有任何更改。我的问题是,当它轮询时,我的$GIT_BRANCH_NAME变量不存在,构建失败。
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()
}
但还是不行。任何帮助都很感激
2条答案
按热度按时间ewm0tg9j1#
给你:
UPD:
据我所知,问题是你的类既没有声明
bindings
,也没有声明project
和GIT_BRANCH_NAME
变量(或者它们没有从外部传递到绑定中)。有没有可能发布整个类和脚本执行器(绑定或类似的)?jjjwad0x2#
一些需要提前知道(或至少猜测)的事情:
env
对象(?)来管理当前环境变量-这意味着不能保证任何env
成员也会出现在“绑定”系统中env.<name>
和<name>
同时存在env.<name>
的不存在的成员将导致空,而对于相同的情况,访问<name>
将引发故障。因此,我建议实现看起来像这样的代码: