#spring-boot #maven #configuration #log4j
#весенняя загрузка #maven #конфигурация #log4j
Вопрос:
Использование maven и springbooot. Я хотел бы использовать разные конфигурации файлов (log4j2.xml , application.properties) для каждой среды (dev, сертификат). У меня есть два профиля, созданных на моем pom.xml файл, также у меня есть две папки в src / main / resources с конфигурациями каждого файла (dev и cert). Я хотел бы включить эти файлы в зависимости от профиля, который я использую. У меня есть другие файлы в каталоге, поэтому я не хочу использовать способ создания двух маршрутов и дубликатов файлов, я бы хотел просто включить все в src / main / resources и файлы в каталоге dev или cert.
Я пытался использовать :
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<packagingIncludes>src/main/resources/{resources.directory}</packagingIncludes>
</configuration>
</plugin>
Но я получаю
[ОШИБКА] Не удалось выполнить цель org.springframework.boot:spring-boot-maven-plugin: 1.4.3.РЕЛИЗ: переупаковка (по умолчанию) в проекте NProWebApp: выполнение по умолчанию цели org.springframework.boot:spring-boot-maven-plugin:1.4.3.РЕЛИЗ: ошибка переупаковки: не удалось найти основной класс -> [Справка 1]
РЕДАКТИРОВАТЬ: добавление профилей в maven :
<profiles>
<profile>
<id>dev</id>
<properties>
<packaging.type>jar</packaging.type>
</properties>
</profile>
<profile>
<id>cert</id>
<properties>
<packaging.type>war</packaging.type>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
</profiles>
Ответ №1:
Вам не нужно ничего делать с Maven. Просто упакуйте все файлы вместе и создайте файлы конфигурации spring формата application-{profile}.properties. Затем в этом файле определите местоположение вашей конфигурации ведения журнала, используя logging.config=log4j2-{profile}.xml, где {profile} — это имя профиля для текущего файла.
Обратите внимание, что в yml вы также можете поместить несколько конфигураций профиля в одно приложение.yml-файл.
Комментарии:
1. Привет, твое решение звучит неплохо, но когда я создавал war, оно содержало оба application.properties (dev и cert), и оба log4j.xml Я думаю, чего-то не хватает, чтобы указать maven, какие файлы принимать, я прав? Я собираюсь отредактировать вопрос, чтобы добавить информацию о профилях