Подтвердить что ты не робот

Доступ к переменным среды из 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?

4b9b3361

Ответ 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?