#spring-boot #maven-3 #spring-profiles
#весенняя загрузка #maven-3 #spring-profiles
Вопрос:
Я использую Maven в качестве инструмента сборки. Для управления профилями в SpringBoot я использую файлы yml.
Для моего приложения SpringBoot у меня настроено следующее приложение-файлы *.yml:
application.yml
application-local.yml
application-foobar.yml
Мой соответствующий pom.xml конфигурация профиля:
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<activatedProperties>local</activatedProperties>
</properties>
</profile>
<profile>
<id>foobar</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<activatedProperties>foobar</activatedProperties>
</properties>
</profile>
</profiles>
Всякий раз, когда я пытаюсь либо упаковать, либо запустить свое приложение через Maven:
> mvn package -P <any configured profile>
> mvn spring-boot:run -P <any configured profile>
Приложение запускается, однако оно запускается только с возвратом к профилю по умолчанию (application.yml).
Я получаю следующую запись в журнале каждый раз, когда пытаюсь запустить приложение в любом из моих настроенных профилей:
: No active profile set, falling back to default profiles: default
Кажется, я не могу найти в Интернете какой-либо четкой информации по этой проблеме.
Любая помощь была бы с благодарностью принята. Спасибо!
Ответ №1:
Профили сборки Maven и профили Spring bean — это две совершенно разные концепции, которые используют одно и то же имя, но не взаимодействуют друг с другом.
XML, который вы показали, <profiles></profiles>
настраивает профили сборки Maven, но не окажет никакого влияния на профили Spring bean.
Согласно документации Spring Framework по активации профиля и документации Spring Boot по передаче аргументов при запуске приложения, вы можете выбрать активный профиль Spring bean при запуске приложения с помощью Maven с помощью команды, подобной этой:
> mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=local"
Комментарии:
1. Спасибо, Скотт… Я попробую и дам вам знать, как это получается.