Как установить переменную среды в Android Studio до запуска моей сборки gradle

My Gradle build смотрит на переменную среды BUILD_NUMBER, чтобы определить версию для моего приложения для Android следующим образом:

def buildNumber = System.getenv("BUILD_NUMBER") ?: "local"

Итак, до тех пор, пока эта переменная среды установлена, номер сборки используется в defaultConfig следующим образом:

versionName "1.4.0."+buildNumber

Обычно Jenkins будет вызывать эту конструкцию Gradle и снабжать переменную среды BUILD_NUMBER.

Если я запустил конструкцию Gradle из моей командной строки, я знаю, что могу установить BUILD_NUMBER = x.

Однако, если я создаю с помощью Android Studio, как установить переменную среды BUILD_NUMBER через Android Studio?

Ответ 1

Я закончил использование следующего в моем build.gradle:

def buildNumber = System.getenv("BUILD_NUMBER")
if (buildNumber == null) {
    Properties properties = new Properties()
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    buildNumber = properties.getProperty('buildNumber')?:"NoBuildNumberFound"
}

Поскольку файл local.properties не должен быть привязан к репозиторию исходного кода, каждый разработчик управляет своей собственной копией.

Итак, если они хотят установить buildNumber в своей локальной Android-студии, они просто добавят следующее в свой файл local.properties:

buildNumber=7

Итак, на локальной машине разработчиков номер сборки будет установлен в том, что когда-либо они помещают в файл local.properties, но на нашем сервере Jenkins он будет использовать переменную окружения BUILD_NUMBER

Наш сервер Jenkins устанавливает переменную среды BUILD_NUMBER

Ответ 2

Один из вариантов - использовать свойства gradle, которые могут быть переопределены переменными окружения. Вы можете прочитать об этом здесь.

Если имя переменной окружения выглядит как ORG_GRADLE_PROJECT _prop = somevalue, то gradle будет устанавливать свойство prop в вашем объекте проекта со значением somevalue.

Это означает, что вы можете

  • установите BUILD_NUMBER=42 в ваш .properties файл (проект или глобальный), как вы обычно делали,
  • и в вашем CI вы бы назвали переменную окружения ORG_GRADLE_PROJECT_BUILD_NUMBER, переписку или настройку BUILD_NUMBER в вашей сборке CI.

Примечание. Используйте gradle.properties в корневом каталоге проекта и не изменяйте local.properties.

Ответ 3

Это просто переменные среды.

Если под Windows перейдите на панель управления ОС и введите "окружение" в поле поиска в правом верхнем углу. Затем нажмите "Редактировать переменные среды для вашей учетной записи", очень удобные для пользователя и не требующие прав администратора. Перезапустите Android Studio после редактирования.

Если под Linux, отредактируйте .bashrc в своей домашней папке (vi ~/.bashrc или с каким-то другим редактором). Здесь могут быть установлены переменные среды. source ~/.bashrc (или выйти/войти в систему) и перезапустить Android Studio после редактирования.