Могу ли я передать внутреннюю переменную Spring Boot в gradlew? - PullRequest
2 голосов
/ 06 мая 2019

У меня есть вопрос.В моем приложении у меня есть несколько конфигураций:

application-prod.properties
application-test.properties
application-dev.properties

и основной файл:

application.properties

Содержит одну строку:

spring.profiles.active=test

Для сборки и запускаприложение, которое я использую ./gradlew buildNeeded

Можно ли как-то передать суффикс свойств: test, prod, dev, чтобы он использовался в процессе сборки, чтобы я мог создавать различные сценарии bash для запуска процесса установки в тестеи prod серверы?

Я ищу что-то вроде ./gradlew buildNeeded --spring.profiles.active=test или что-нибудь, что будет работать ...

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Вы можете использовать свойства проекта:

task buildNeeded {
    doLast {
        def springProfile = project.properties.getOrDefault('spring.profiles.active', 'test')
        println springProfile
    }
}

Затем вы можете запустить проект с помощью

./gradlew buildNeeded -Pspring.profiles.active=test
0 голосов
/ 06 мая 2019

Этого можно добиться с помощью spring-gradle-plugin.

Из документации плагина Передача аргументов в ваше приложение

Как и все задачи JavaExec, аргументы могут быть переданы в bootRun из командная строка с использованием --args = '' при использовании Gradle 4.9 или потом. Например, чтобы запустить ваше приложение с профилем с именем dev active может использоваться следующая команда:

./gradlew bootRun --args='--spring.profiles.active=dev'
...