Gradle: загрузить файл свойств в зависимости от профиля

Я хочу написать скрипт сборки gradle, который работает в разных средах (разработка, live). В каждой среде мне приходится загружать разные наборы свойств (целевые каталоги, базы данных и т. Д.).

Существует ли способ чтения файла свойств в зависимости от среды или профиля?

3 ответа

Решение

Вы можете проверить плагин Gradle Properties.

Включить плагин:

plugins {
  id 'net.saliman.properties' version '1.4.2'
}

Создайте файлы свойств:

gradle-dev.properties

или же

gradle-prod.properties

Позвоните в Gradle:

gradle myTask -PenvironmentName=dev
gradle myTask -PenvironmentName=prod

Также взгляните на Gradle- эквивалент профилей Maven.

У меня была такая же проблема, но я использую Spring и настроил его для чтения свойств из classpath: application.properties

В этом случае вы можете добавить это в gradle.build с помощью плагина Java.

if (project.hasProperty('env')) {
    println "Target environment: $env"
    sourceSets.main.resources.srcDir "src/main/environment/$env"
}

это для разных папок в зависимости от среды

Поэтому для добавления ресурсов на основе среды 'dev' у вас должна быть папка 'src/main/environment/dev' (с файлом свойств) и вызовите gradle: gradle myTask -Penv=dev

Другие вопросы по тегам