Jenkins使用Rebuilder插件重建任务时无法加载Choice parameters选项求助
解决Jenkins Rebuilder插件丢失单选选择参数选项的问题
优先升级Rebuilder插件到最新稳定版
部分旧版本Rebuilder存在参数类型识别bug,对单选选择参数的序列化/反序列化处理异常,导致重建时被转为字符串参数。进入Jenkins插件管理页面找到Rebuilder,升级到最新稳定版后重试,多数情况下可解决问题。切换为Pipeline任务(若适用)
若你的任务是Pipeline类型,直接在Jenkinsfile中明确定义单选参数,Rebuilder对Pipeline参数的兼容性更好,重建时能完整保留可选选项:parameters { choice( name: 'DEPLOY_ENV', choices: ['dev', 'test', 'prod'], description: '选择部署环境' ) }用Groovy脚本强制恢复参数类型
若升级插件后问题仍存在,可通过Jenkins脚本控制台执行以下脚本,在Rebuilder加载参数时强制恢复单选参数的可选选项:import hudson.model.* import org.jenkinsci.plugins.rebuilder.RebuildAction Jenkins.instance.getAllItems(Job).each { job -> job.getActions(RebuildAction).each { action -> def rebuildParams = action.getRebuildParameters() rebuildParams.each { param -> if (param instanceof StringParameterValue) { def paramDefs = job.getProperty(ParametersDefinitionProperty)?.getParameterDefinitions() if (paramDefs) { def originalDef = paramDefs.find { it.getName() == param.getName() } if (originalDef instanceof ChoiceParameterDefinition) { rebuildParams.remove(param) rebuildParams.add(new ChoiceParameterValue(param.getName(), param.getValue(), originalDef.getChoices())) } } } } } }注意:执行前备份Jenkins配置,避免意外。
替代方案:使用原生重新触发功能
若上述方法均不生效,可放弃Rebuilder插件:进入任务的构建历史,找到目标构建后,点击"Replay"(Pipeline任务)或在构建详情页选择"Build with Parameters",手动选择参数重新触发,此方式能完整保留参数选项。
内容的提问来源于stack exchange,提问作者Nadav Avrahami
相关产品推荐
相关产品推荐

