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)
答案 0 :(得分:1)
不确定这里的问题是什么(其他注释确实有效)。也许只适用于生成源注释。无论如何,对于任何非平凡的库,它很可能会使用Groovy语言功能很抱歉,但管道脚本中通常不提供异国情调的功能。在此插件或工作流-cps-plugin https://github.com/jenkinsci/workflow-cps-plugin中没有明确记录对Groovy类注释的支持(据我所知)。
答案 1 :(得分:1)
这是詹金斯的一个已知问题:JENKINS-45901
此服务自2017年8月开始开放。看来它不会很快得到修复:
不确定是否有详尽的文档记录了Groovy语言支持(或缺乏它),但是无论如何我都不希望这个问题或类似的东西得到解决。今后的工作重点是允许外部流程执行,而不是在安全漏洞或严重回归的情况下在CPS引擎上浪费更多时间。
我尝试将@Delegate
与@NonCPS
组合使用,但是后者似乎对字段没有任何影响。
您必须自己实现委托方法或尝试其他解决方案。