Возникли проблемы с запуском приложения springboot для запуска / создания определенного профиля

#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. Спасибо, Скотт… Я попробую и дам вам знать, как это получается.