Я разработал веб-приложение с использованием Spring Boot. У меня есть три папки ресурсов в src / main / resources staging, qa, production, которые состоят из свойств приложения и конфигурации ведения журнала для конкретной среды. Наряду с этими папками у меня есть application.properties и конфигурация журнала в папке ресурсов, которую я использую для среды разработки. Я хочу упаковать файл войны в соответствии со средой, используя плагин spring-boot-maven. Я новичок в maven, любая помощь будет оценена?
Как исключить приложение по умолчанию application.properties добавить файл настраиваемых свойств с использованием профилей в maven для проекта весенней загрузки?
Ответы (2)
Конвекция application-{profileName}.properties
Пункты 10 и 11:
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html.
например application-test.properties
он отменяет профиль application.properties
Make в pom.xml
Введение в профили: http://maven.apache.org/guides/introduction/introduction-to-profiles.html
logging configuration for the specific environment
? Вы уверены, что не можете создавать переменные в application.properties
, которые будут делать все и изменять их в зависимости от ваших потребностей?
- person Kamil Witkowski; 16.08.2016
Вместо того, чтобы использовать Maven для добавления разных папок в путь к классам для каждой среды, вы можете использовать профили Spring.
Прежде всего создайте разные application.properties для каждой среды, например:
- application-staging.properties
- application-qa.properties
- application-production.properties
Для ведения журнала вы можете использовать свойство logging.config
. Итак, в application-staging.properties вы можете использовать:
logging.config=classpath:logback-staging.xml
В других файлах свойств вы можете использовать другие logging.config
свойства.
Теперь просто запустите приложение со свойством spring.profiles.active
.
Однако более простым решением было бы использовать внешняя конфигурация. Вместо того, чтобы перестраивать каждый раз, когда вы хотите изменить конфигурацию для определенного профиля, вы можете экстернализовать его, поместив файл application.properties рядом с вашим JAR / WAR в правильной среде, а не на вашем путь к классам. Spring boot подберет это автоматически.
Теперь вы также можете сделать внешнюю конфигурацию ведения журнала, поместив файл logback.xml (или log4j2.xml, ...) рядом с вашим JAR / WAR и просто сконфигурируйте свои (внешние) свойства приложения с помощью:
logging.config=file:logback.xml
Это позволяет вам редактировать вашу конфигурацию и регистрацию без изменения вашего JAR / WAR.
-Dspring.profiles.active=staging
должно работать. Вы также должны иметь возможность настроить это свойство в своем контейнере Tomcat.
- person g00glen00b; 16.08.2016