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

Gradle如何从env.file加载环境变量至exec任务?

嘿,作为Gradle新手碰到这种配置需求太正常了,我给你一个简单直接的解决方案,能把env.file里的所有环境变量自动加载到你的exec任务里:

直接解析env.file并加载变量

你可以在exec块里读取env.file的内容,逐行解析键值对,然后添加到任务的环境变量中。这样就不用手动一个个写environment 'KEY', 'VALUE'了:

task fooTask {
    doLast {
        exec {
            // 读取并解析env.file中的环境变量
            file('env.file').eachLine { line ->
                // 跳过注释行(以#开头)和空行
                def trimmedLine = line.trim()
                if (!trimmedLine.startsWith('#') && trimmedLine.contains('=')) {
                    // 分割键和值(只分割第一个=,避免值里包含=的情况)
                    def parts = trimmedLine.split('=', 2)
                    def key = parts[0].trim()
                    def value = parts[1].trim()
                    environment key, value
                }
            }
            
            commandLine 'fooScript.sh'
        }
    }
}

代码说明

  • file('env.file').eachLine:遍历env.file的每一行内容
  • 跳过注释行和空行:避免加载无效的配置
  • split('=', 2):只分割第一个=符号,确保如果值里包含=(比如FOO=bar=baz)也能正确解析
  • environment key, value:把每个键值对添加到exec任务的环境变量中

测试一下

运行./gradlew fooTask,你会看到脚本输出1234567,和之前手动设置的效果完全一样,但现在所有变量都是从env.file自动加载的啦!

内容的提问来源于stack exchange,提问作者Justinas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:05:34