#java #spring-boot #maven
Вопрос:
Я использую автоматическое расширение свойств для ввода некоторых значений в application.properties. Эти свойства зависят от профиля maven. Вот пример из pom.xml
:
<profiles>
<profile>
<id>development</id>
<properties>
<log.output.dir>target/logs</log.output.dir>
<log4j2.xml.location>target/classes/log4j2-spring.xml</log4j2.xml.location>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/external-resources</directory>
<includes>
<include>*.*</include>
</includes>
</resource>
</resources>
</build>
</profile>
...
Идея заключается в том, что для некоторых профилей я вводлю определенные значения, а для некоторых полностью исключаю внешний каталог ресурсов (иногда приложение запускается без встроенного tomcat с внешней конфигурацией). Я хотел бы избежать использования файлов свойств, специфичных для профиля, чтобы иметь меньше файлов для обслуживания.
Подстановка работает, и файлы с введенными переменными помещаются в target/classes
соответствии с документами maven.
Однако, когда я запускаю проект в IntelliJ , используя профиль разработки, Spring Boot берет ресурсы из src/main/external-resources
, а не target/classes
, я предполагаю, основываясь на каталоге ресурсов, который я определил в разделе профиль.
Есть ли способ заставить Spring Boot считывать файлы с введенными свойствами при работе в режиме разработки без добавления дополнительных аргументов командной строки/системных свойств? Возможно, дополнительное свойство maven?
Другими словами, чтобы другим разработчикам, которые открывают проект и запускают его, не нужно было добавлять дополнительные аргументы или обмениваться файлами конфигурации?