1. 概要

このクイックチュートリアルでは、Mavenpom.xmlから環境変数を読み取ってビルドプロセスをカスタマイズする方法を説明します。

2. 環境変数

pom.xmlから環境変数を参照するには、${env.VARIABLE_NAME}構文を使用できます。

たとえば、ビルドプロセスでバージョンを外部化するために使用してみましょう。

<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”syntaxを使用して環境変数をエクスポートする必要があります。

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に渡すことでビルドプロセスをカスタマイズする方法を説明しました。