问题描述
在最近的jenkins版本升级到2.245并将ActiveChoice插件升级到2.1和Scriptler插件升级到3.1之后。我使用脚本编辑器动态生成的作业现在失败,并出现以下错误:
No signature of method: javaposse.jobdsl.dsl.helpers.parameter.ActiveChoiceContext.scriptlerScript() is applicable for argument types: (java.lang.String,XyzJob$_run_closure1$_closure9$_closure23$_closure24$_closure25) values: [xyz.groovy,XyzJob$_run_closure1$_closure9$_closure23$_closure24$_closure25@31decd67]
这样的代码非常简单(错误发生在脚本脚本行)
parameters {
activeChoiceParam(component.name.toString().replace("-","_")) {
description(selectionDescription)
choiceType('SINGLE_SELECT')
scriptlerScript("xyz.groovy") {
parameter("parameterItems",stringToUseInMenu)
}
}
}
解决方法
进一步挖掘scriptscripler()方法已从新版本的jobdsl中删除,因此出现错误。
解决方法似乎是将scriptler函数重写为groovyscript或寻找替代方法。