如何使用JSON文件填充Jenkins的choice类型构建参数
实现从JSON文件读取内容填充Jenkins Choice类型构建参数的方案
首先建议你提前把存储可选值的JSON调整为纯数组结构,方便解析,示例参考:app_list.json
["生产环境", "测试环境", "预发环境", "开发环境"]
请将该文件放在Jenkins主节点可读取的路径下,保证Jenkins运行用户有该文件的读权限。
自由风格项目实现步骤
- 首先安装Extended Choice Parameter插件,在Jenkins插件管理中搜索安装后重启生效
- 进入对应项目的配置页面,勾选「This project is parameterized」,新增参数选择「Extended Choice Parameter」
- 按如下规则配置参数:
- 填写自定义参数名,比如
DEPLOY_ENV - 「Parameter Type」选择
Single Select(单选),如果需要多选可选择Multi Select - 「Choose Source for Value」项选择「Groovy Script」
- 在Groovy脚本输入框填入如下代码,替换为你的JSON文件实际路径:
import groovy.json.JsonSlurper def jsonFile = new File("/你的JSON文件绝对路径/app_list.json") return new JsonSlurper().parse(jsonFile) - 填写自定义参数名,比如
- 保存配置后触发构建,即可看到Choice下拉框的选项已经从JSON文件加载完成。
Pipeline项目实现步骤
如果使用声明式Pipeline,可以直接在parameters块中直接解析JSON生成选项,示例代码如下:
pipeline { agent any parameters { choice( name: 'DEPLOY_ENV', choices: new groovy.json.JsonSlurper().parse(new File("/你的JSON文件绝对路径/app_list.json")), description: '选择需要部署的环境' ) } stages { stage('参数验证') { steps { echo "当前选择的部署环境为:${params.DEPLOY_ENV}" } } } }
常见问题排查
- 下拉框无选项:优先检查JSON文件路径是否正确、Jenkins运行用户是否有文件读权限、JSON格式是否合法无语法错误
- 选项显示异常:确认JSON为纯一维数组结构,不要嵌套对象,若需要展示值和实际传值不一致,可以调整Groovy脚本返回键值对对应的列表即可。
内容的提问来源于stack exchange,提问作者vik_nag
相关产品推荐
相关产品推荐

