Jenkins自由风格任务Active Choice Parameter的Groovy脚本执行失败求助
脚本执行失败的原因及修复方案
核心错误点
findAll方法调用语法错误:原脚本里Jenkins.instance.items.findAll.each的写法不符合Groovy语法,findAll是集合过滤方法,需要以findAll{闭包}的形式使用,不能直接链式调用each。- 导入包与权限问题:仅导入
jenkins.*无法获取完整的Jenkins实例操作权限,需明确导入jenkins.model.Jenkins;同时Jenkins的脚本安全策略默认会阻止直接访问Jenkins.instance,需要在后台授权该调用。 - 返回格式不符合要求:Active Choice Parameter需要接收列表对象,原脚本用
join('\n')将列表转为字符串,不符合参数的格式要求。
修复后的Groovy脚本
import jenkins.model.Jenkins // 过滤并返回所有名称包含'release'的项目名称列表 return Jenkins.instance.items.findAll { item -> item.name.contains("release") }.collect { it.name }
额外注意事项
- 若修复后仍报错,需进入Jenkins后台的Manage Jenkins > In-process Script Approval页面,批准脚本中涉及的Jenkins实例访问权限。
- 确认Active Choice插件版本与当前Jenkins版本兼容,避免因插件兼容性导致执行异常。
内容的提问来源于stack exchange,提问作者Anugrah Igo Aldi Wibowo
相关产品推荐
相关产品推荐

