Использование тега свойств в профилях Maven
Я имею в виду "Maven: полный справочник" и особенно раздел, касающийся профилей, которые документируют использование <properties...
тег в пределах <profile...
пометить здесь: см. здесь
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>environment.type</name>
<value>dev</value>
</property>
</activation>
<properties>
<database.driverClassName>com.mysql.jdbc.Driver</database.driverClassName>
<database.url>
jdbc:mysql://localhost:3306/app_dev
</database.url>
<database.user>development_user</database.user>
<database.password>development_password</database.password>
</properties>
</profile>
Что я не уверен в том, что происходит, когда mvn install -Denvironment.type=dev
команда запускается:
- Будет ли это создать
.properties
файл? - Если нет, то как и где Tomcat (например) будет читать отдельные свойства, когда приложение тестируется в dev?
1 ответ
Будет ли это создавать файл.properties?
Нет не будет Это установит свойства, используемые maven. Это с mvn install -Denvironment.type=development
maven будет использовать значение 'development_user' для переменной 'database.user' (которую вы можете использовать как ${database.user} в poms и отфильтрованных ресурсах).
Если нет, то как и где Tomcat (например) будет читать отдельные свойства, когда приложение тестируется в dev?
Дело в том, чтобы сказать maven фильтровать (и изменять) ресурсы, которые вы хотите настроить в зависимости от профиля (properties.files).
Итак, сначала вы должны сказать maven для фильтрации ресурсов:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Затем измените ваши файлы свойств, чтобы использовать переменные maven. Например, ваш файл свойств базы данных будет выглядеть так:
database.driverClassName=${database.driverClassName}
database.url=${database.url}
#...