«1. Обзор

В этом кратком руководстве мы увидим, как читать переменные среды из pom.xml Maven для настройки процесса сборки.

2. Переменные среды

Для ссылки на переменные среды из pom.xml мы можем использовать синтаксис ${env.VARIABLE_NAME}.

Например, давайте воспользуемся им, чтобы внедрить версию Java в процессе сборки:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>${env.JAVA_VERSION}</source>
                <target>${env.JAVA_VERSION}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Мы должны помнить о передаче информации о версии Java через переменные среды. Если мы этого не сделаем, мы не сможем построить проект.

Чтобы запустить цели или этапы Maven для такого файла сборки, мы должны сначала экспортировать переменную среды. Например:

$ export JAVA_VERSION=9
$ mvn clean package

В Windows мы должны использовать синтаксис «set VAR=value» для экспорта переменной среды.

Чтобы предоставить значение по умолчанию, когда переменная среды JAVA_VERSION отсутствует, мы можем использовать профиль Maven:

<profiles>
    <profile>
        <id>default-java</id>
        <activation>
            <property>
                <name>!env.JAVA_VERSION</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Как показано выше, мы создаем профиль и делаем его активным, только если переменная среды JAVA_VERSION установлена. отсутствует — часть !env.JAVA_VERSION. Если это произойдет, то это новое определение плагина переопределит существующее.

3. Заключение

В этом кратком руководстве мы увидели, как настроить процесс сборки, передав переменные среды в файл pom.xml.