【发布时间】:2020-11-25 23:25:39
【问题描述】:
在我的 Jenkins 管道中,我有:
library 'my-shared-library'
pipeline {
environment {
MY_PROPERTY = 'ABC'
}
}
在我的 Jenkins 管道中包含的共享库中,我将 MY_PROPERTY 用作:
def someMethod() {
def someText = "blah blah ${MY_PROPERTY}"
}
问题是我从许多管道中调用 someMethod() 并且在某些管道中未定义 MY_PROPERTY:
library 'my-shared-library'
pipeline {
environment {
}
}
所以我收到以下错误:
groovy.lang.MissingPropertyException:没有这样的属性:MY_PROPERTY 用于类:my.comapny.mylib
我需要一种方法来检查是否在 environemnt 部分中声明了 MY_PROPERTY,如下所示:
def someMethod() {
if is defined MY_PROPERTY then
def someText = "blah blah ${MY_PROPERTY}"
else
def someText = "X"
}
如何检查是否声明了 MY_PROPERTY?如果我尝试访问 MY_PROPERTY 并且它没有在我收到的环境中声明:
groovy.lang.MissingPropertyException:没有这样的属性:MY_PROPERTY 用于类:my.comapny.mylib
【问题讨论】:
标签: groovy jenkins-pipeline jenkins-groovy