Использование переменных в 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> записей.

Другие вопросы по тегам