Jus*_*nas 4 bash environment-variables gradle
我是Gradle的新手。
目前,我有此任务:
task fooTask {
doLast {
exec {
environment 'FOO_KEY', '1234567' // Load from file here!
commandLine 'fooScript.sh'
}
}
}
Run Code Online (Sandbox Code Playgroud)
fooScript.sh
#!/bin/bash
echo $FOO_KEY
Run Code Online (Sandbox Code Playgroud)
一切正常。但是我拥有env.file所有需要的环境变量。该文件在Docker构建器中使用。
环境文件
FOO_KEY=1234567
Run Code Online (Sandbox Code Playgroud)
问题:如何env.file与Gradle一起使用environment以加载所有需要的环境。参数?
我也给出了我的版本(检查行是否不为空且没有注释,也不要覆盖env var):
file('.env').readLines().each() {
if (!it.isEmpty() && !it.startsWith("#")) {
def pos = it.indexOf("=")
def key = it.substring(0, pos)
def value = it.substring(pos + 1)
if (System.getenv(key) == null) {
environment key, value
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是实际上,我认为他们应该将此功能添加为exec插件属性!现在使用.env文件非常普遍。
那这个呢 :
task fooTask {
doLast {
exec {
file('env.file').readLines().each() {
def (key, value) = it.tokenize('=')
environment key, value
}
commandLine 'fooScript.sh'
}
}
}
Run Code Online (Sandbox Code Playgroud)