Доступ к переменным среды из 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 из командной строки. Результат корректный – установлена ​​переменная env:

Вывода: Hello World

4) выполнить printVar из Android Studio. Переменная окружения не задана . Выход пуст

Здравый смысл подсказывает мне, что, делая export MY_CUSTOM_VAR='Hello World' я просто делаю эту переменную доступной для процесса оболочки (и ее подпроцессов). И было бы неплохо работать, если я запустил свою Android-студию из командной строки (чтобы она наследовала мою среду). Но поскольку я запускаю Android Studio из док-станции (кстати, я нахожусь на Mac) – у нее есть своя среда, которая не имеет никакого представления о моем ~/.bash.profile .

Можно ли каким-либо образом заполнить пользовательские переменные среды для Android Studio?

Solutions Collecting From Web of "Доступ к переменным среды из Android Studio gradle build"

Найден ответ здесь: переменные окружения в Mac OS X

По сути, вам также нужно установить переменные среды, используемые launchd через launchctl – таким образом, переменная среды будет доступна для чего-либо, запущенного из интерфейса MacOS

Поэтому я изменил свой ~/.bash_profile следующим образом:

 export MY_CUSTOM_VAR='Hello World' launchctl setenv MY_CUSTOM_VAR $MY_CUSTOM_VAR 

Вы можете установить среду, используемую startd (и, в дополнение, все, что началось с Spotlight) с помощью startctl setenv. Например, чтобы установить путь:

launchctl setenv MY_CUSTOM_VAR /***/***/***

Чтобы сохранить изменения после перезагрузки, вы можете установить переменные среды из /etc/launchd.conf, например:

setenv MY_CUSTOM_VAR /***/***/***

Вы можете видеть, что переменные среды окружения в OS X?