Spring boot + файл свойств Gradle

1

У меня есть два файла свойств в src/main/resources application-dev.properties и application-prod.properties.

Когда я запускаю свое приложение с помощью java -jar -Dspring.profiles.active=dev он выбирает правильный файл свойств и работает мое приложение.

Однако, когда я использую gradle -Dspring.profiles.active=dev test, свойства не заданы из указанного профиля.

Я также создал файл application.properties содержащий spring.profiles.active=dev. Когда я компилирую и запускаю java -jar test.jar он работает так, как ожидалось, но когда я использую gradle test свойства игнорируются.

Теги:
gradle

1 ответ

0

Есть два JVMs, один из которых работает Gradle, и один запускает ваш тест. Когда вы запускаете gradle -Dspring.profiles.active=dev test вы устанавливаете свойство на JVM, запущенном Gradle, а не JVM, выполняющий ваш тест. Gradle автоматически не копирует свойства системы из своей JVM в JVM, который он создает. В этой статье на форумах Gradle объясняется, как установить свойства JVM, запускающего ваш тест, но вкратце вам понадобится что-то подобное в вашем build.gradle:

tasks.withType(Test) {
  systemProperty 'spring.profiles.active', 'dev test'
}

Если вы установили активный профиль как системное свойство, вы можете использовать это:

tasks.withType(Test) {
  systemProperty 'spring.profiles.active', System.getProperty('spring.profiles.active')
}

Чтобы скопировать все свойства системы:

tasks.withType(Test) {
  systemProperties = System.getProperties()
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню