Использование переменных в pom.xml
Я хочу использовать переменную, которая имеет разные значения в файле свойств в зависимости от среды. Я хочу использовать эту переменную в моем pom.xml.
1 ответ
Вы ищете Maven Resource Filtering
При использовании фильтрации ресурсов необходимо выполнить 3 шага:
Шаг 1:
Добавить набор соответствующих <profile>
записи в вашей пом и включить необходимые переменные в список <properties>
:
<profile>
<id>Dev</id>
<properties>
<proxyServer>dev.proxy.host</proxyServer>
<proxyPort>1234</proxyPort>
</properties>
</profile>
<profile>
<id>QA</id>
<properties>
<proxyServer>QA.PROXY.NET</proxyServer>
<proxyPort>8888</proxyPort>
</properties>
</profile>
<profile>
<id>Prod</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<proxyServer>PROD.PROXY.NET</proxyServer>
<proxyPort>8080</proxyPort>
</properties>
</profile>
Обратите внимание, что Prod
профиль был помечен: <activeByDefault>
,
Шаг 2:
В файле свойств используйте разграничение переменных в стиле pom, чтобы добавить заполнители значений переменных, соответствующие <property>
имена тегов, используемые в пом:
proxyServer=${proxyServer}
proxyPort=${proxyPort}
Шаг 3:
В помпе <build>
раздел, добавить <resources>
запись (при условии, что ваши свойства находятся в каталоге src/main/resources), включите <filtering>
тег и установите значение: true
:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>settings.properties</include>
</includes>
</resource>
</resources>
Затем при запуске сборки Maven значения разграниченных свойств будут заменены значениями, определенными в pom. <profile>
записей.