詹金斯版 2.89.4workflow -cps ver 2.42
当我尝试运行加载库的管道时,出现以下异常:
Unsupported expression for CPS transformation @ line -1, column -1
引用链接的Groovy类:
final class Bindings implements Serializable{ @Delegate private final Map map Bindings(Map map) { this.map = map } @Override boolean containsKey(Object key) { return true } @Override Object get(Object key) { return map.getOrDefault(key, null) } }
您可以像这样在管道或库中重现异常:
def map = ["key":"value"] Bindings bindings = new Bindings (map)
这是一个已知的詹金斯问题:JENKINS-45901
自2017年8月以来已开放。看起来很快不会修复:
不知道是否有详尽的文档记录了Groovy语言支持(或缺乏它),但是无论如何我都不会期望这个问题或类似的东西得到解决。今后的工作重点是允许外部流程执行,而不是在安全漏洞或严重衰退的情况下在CPS引擎上浪费更多时间。
我尝试了@Delegatewith 的组合,@NonCPS但后者似乎对字段没有任何影响。
@Delegate
@NonCPS
您必须自己实现委托方法或尝试其他解决方案。