从 Android Studio gradle build 访问环境变量
Access to environment variables from Android Studio gradle build
在我的 Android Gradle 构建中,我需要访问我在 .bash.profile
中设置的环境变量。当我从命令行构建时它工作正常 - Gradle 脚本可以看到所有变量。
但是,当我尝试从 Android Studio 运行 我的构建时 - 我不再有我的环境变量了。
这是我所面临的粗略描述:
1) 通过 ~/.bash.profile
:
设置自定义环境变量
export MY_CUSTOM_VAR='Hello World'
2) 在 build.gradle
中创建打印此环境变量的任务:
task printVar << {
println System.getenv("MY_CUSTOM_VAR")
}
3) 从命令行执行 printVar
。输出正确 - 环境变量已设置:
输出:Hello World
4) 从 Android Studio 执行 printVar
。环境变量 未设置 。输出为空
常识告诉我,通过执行 export MY_CUSTOM_VAR='Hello World'
,我只是让这个变量可用于 shell 进程(及其子进程)。如果我从命令行启动 Android Studio,它可能会起作用(因此它会继承我的环境)。但是自从我从 dock 启动 Android Studio(顺便说一句,我在 Mac 上)- 它有自己的环境,对我的 ~/.bash.profile
.[=22 没有任何想法=]
有什么方法可以将自定义环境变量填充到 Android Studio?
在这里找到答案:
Environment variables in Mac OS X
本质上,您还需要通过 launchctl
设置 launchd
使用的环境变量 - 这样环境变量将可用于从 MacOS UI
启动的任何内容
所以我修改了我的 ~/.bash_profile
如下:
export MY_CUSTOM_VAR='Hello World'
launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR
您可以使用 launchctl setenv 设置 launchd 使用的环境(以及,通过扩展,任何从 Spotlight 启动的环境)。例如设置路径:
launchctl setenv MY_CUSTOM_VAR /***/***/***
要在重启后保留更改,您可以从 /etc/launchd.conf 设置环境变量,如下所示:
setenv MY_CUSTOM_VAR /***/***/***
可以看到Setting environment variables in OS X?
在我的 Android Gradle 构建中,我需要访问我在 .bash.profile
中设置的环境变量。当我从命令行构建时它工作正常 - Gradle 脚本可以看到所有变量。
但是,当我尝试从 Android Studio 运行 我的构建时 - 我不再有我的环境变量了。
这是我所面临的粗略描述:
1) 通过 ~/.bash.profile
:
export MY_CUSTOM_VAR='Hello World'
2) 在 build.gradle
中创建打印此环境变量的任务:
task printVar << {
println System.getenv("MY_CUSTOM_VAR")
}
3) 从命令行执行 printVar
。输出正确 - 环境变量已设置:
输出:Hello World
4) 从 Android Studio 执行 printVar
。环境变量 未设置 。输出为空
常识告诉我,通过执行 export MY_CUSTOM_VAR='Hello World'
,我只是让这个变量可用于 shell 进程(及其子进程)。如果我从命令行启动 Android Studio,它可能会起作用(因此它会继承我的环境)。但是自从我从 dock 启动 Android Studio(顺便说一句,我在 Mac 上)- 它有自己的环境,对我的 ~/.bash.profile
.[=22 没有任何想法=]
有什么方法可以将自定义环境变量填充到 Android Studio?
在这里找到答案: Environment variables in Mac OS X
本质上,您还需要通过 launchctl
设置 launchd
使用的环境变量 - 这样环境变量将可用于从 MacOS UI
所以我修改了我的 ~/.bash_profile
如下:
export MY_CUSTOM_VAR='Hello World'
launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR
您可以使用 launchctl setenv 设置 launchd 使用的环境(以及,通过扩展,任何从 Spotlight 启动的环境)。例如设置路径:
launchctl setenv MY_CUSTOM_VAR /***/***/***
要在重启后保留更改,您可以从 /etc/launchd.conf 设置环境变量,如下所示:
setenv MY_CUSTOM_VAR /***/***/***
可以看到Setting environment variables in OS X?