You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins Groovy流水线脚本中读取配置文件的值?

Jenkins流水线读取Config File Provider插件托管配置指定行内容的实现方法

前置确认

先找到你创建的自定义配置文件的唯一fileId:进入Jenkins系统管理下的Managed files页面,找到你之前创建的配置条目,进入编辑页后URL末尾的字符串、或者列表页对应条目旁标注的ID就是该值,提前复制留存。

实现代码

直接在流水线中通过插件提供的configFileProvider上下文块将配置文件临时下发到当前构建工作区,再通过内置文件读取方法提取目标行内容即可,参考声明式流水线写法:

pipeline {
    agent any
    stages {
        stage('提取配置内用户信息') {
            steps {
                script {
                    // 替换下面的fileId为你自己的配置文件ID
                    configFileProvider([configFile(fileId: '替换为你的实际配置文件ID', targetLocation: 'temp_config.conf')]) {
                        // 读取文件所有行,Groovy的readLines返回列表下标从0计数,第2行对应下标1
                        def allLines = readFile(file: 'temp_config.conf').readLines()
                        // 去除首尾空白字符后拿到第二行用户信息
                        def userInfo = allLines[1].trim()

                        // 后续直接使用userInfo变量即可,注意敏感信息不要打印到构建日志
                        // echo userInfo

                        // --- 更稳妥的键值读取方式(推荐)---
                        // 如果你的配置行是key=value格式(比如username=zhangsan),不要硬编码行号,按key匹配容错性更高:
                        // def configMap = allLines.findAll { it.contains('=') }.collectEntries { line ->
                        //     def kv = line.split('=', 2)
                        //     [kv[0].trim(), kv.size() > 1 ? kv[1].trim() : '']
                        // }
                        // def username = configMap['username']
                    }
                }
            }
        }
    }
}

注意事项

  • configFileProvider块执行结束后,会自动删除工作区里临时生成的配置文件,不需要手动做清理操作
  • 硬编码行号的方式容错性很差,后续如果配置文件开头加了注释、空行,就会读错内容,只要配置是键值格式,优先用键匹配的方式取值
  • 如果配置里存的是密码等敏感信息,禁止将读取到的值明文打印到构建日志,避免泄露

内容的提问来源于stack exchange,提问作者seok0.2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:12:21