如何检查属性是否在Jenkinsfile中定义



我有一个这样的Jenkins函数:

def function() {
wrap([$class: 'BuildUser']) {
script {
....
def triggeredBy = "Jenkins"
if(BUILD_USER_EMAIL) {
triggeredBy = "<mention email='${BUILD_USER_EMAIL}'/>"
}
...
}
}
}

属性BUILD_USER_EMAIL来自BuildUser类。如果用户触发了构建,它将包含该用户的电子邮件。如果Jenkins是自动触发的,则此属性没有定义。

我试图在上面的代码中这样做,但它不起作用。我仍然得到:

groovy.lang.MissingPropertyException: No such property: BUILD_USER_EMAIL for class: WorkflowScript

我认为它崩溃是因为if语句试图使用不存在的BUILD_USER_EMAIL。

我能做些什么来解决这个问题?

我是这样解决这个问题的:

def function() {
wrap([$class: 'BuildUser']) {
script {
....
def triggeredBy = "Jenkins"
try{ 
triggeredBy = "<mention email='${BUILD_USER_EMAIL}'/>"
} catch (error){
println "BUILD_USER_EMAIL not supplied using default value"
}
}
}
}

最新更新