标签: groovy jenkins-pipeline dsl
我仅在函数存在时才尝试执行阶段:
if (binding.variables.containsKey(functionName)){ stage ("execute") { script{ "${functionName}"(config) } } }
问题是 binding.variables 只返回变量(我应该猜到了)。有没有办法检查一个函数是否被定义?
答案 0 :(得分:1)
MethodNotFound 是异常层次结构中的已检查异常,很难在带有 try..catch 块的 groovy 或 Java 流中捕获,因此很难实现您的目标
try..catch
如果方法或 DSL 未在 Jenkins 中定义,Jenkins 将在解析脚本化或声明性管道时通过异常 - 在这种情况下,我认为您永远无法捕获它