Доступ к переменным среды из Android Studio gradle build
В моей сборке Android Gradle мне нужно получить доступ к переменным окружения, установленным с .bash.profile
. Он отлично работает, когда я строю из командной строки - Gradle script может видеть все переменные.
Однако, когда я пытаюсь запустить мою сборку из Android Studio, у меня больше нет переменных окружения.
Вот грубая картина того, с чем я сталкиваюсь:
1) Задайте настраиваемую переменную среды через ~/.bash.profile
:
export MY_CUSTOM_VAR='Hello World'
2) В build.gradle
создайте задачу, которая печатает эту переменную среды:
task printVar << {
println System.getenv("MY_CUSTOM_VAR")
}
3) выполните printVar
из командной строки. Результат корректный - установлена переменная env:
вывод: Hello World
4) выполните printVar
из Android Studio. Переменная среды не установлена . Выход пуст
Здравый смысл подсказывает мне, что, делая export MY_CUSTOM_VAR='Hello World'
, я просто делаю эту переменную доступной для процесса оболочки (и ее подпроцессов). И это будет вероятно работать, если я запустил свою Android-студию из командной строки (чтобы она наследовала мою среду). Но так как я запускаю Android Studio из док-станции (кстати, я нахожусь на Mac) - у нее есть своя среда, которая не имеет никакого представления о моем ~/.bash.profile
.
Можно ли каким-либо образом заполнить пользовательские переменные среды для Android Studio?
Ответы
Ответ 1
Найден ответ здесь:
Переменные среды в Mac OS X
По существу, вам также нужно установить переменные среды, используемые launchd
через launchctl
- таким образом переменная среды будет доступна для чего-либо, запущенного из интерфейса MacOS
Итак, я изменил свой ~/.bash_profile
следующим образом:
export MY_CUSTOM_VAR='Hello World'
launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR
Ответ 2
Вы можете установить среду, используемую startd (и, в дополнение, все, что началось с Spotlight) с помощью startctl setenv. Например, чтобы установить путь:
launchctl setenv MY_CUSTOM_VAR /***/***/***
Чтобы сохранить изменения после перезагрузки, вы можете установить переменные среды из /etc/launchd.conf, например:
setenv MY_CUSTOM_VAR /***/***/***
вы можете видеть Установка переменных среды в OS X?