Mavenツールチェーン
複数のJavaバージョンを使用するには、Mavenツールチェーンを使用する必要があります。Mavenツールチェーンでは、マシンにインストールされているすべてのJavaバージョンを含むtoolchains.xml
ファイルをMavenフォルダーに作成する必要があります。~/.m2
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<id>Java13</id>
<version>13</version>
</provides>
<configuration>
<jdkHome>${env.JAVA_HOME_13}</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<id>Java9</id>
<version>9</version>
</provides>
<configuration>
<jdkHome>${env.JAVA_HOME_9}</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<id>Java8</id>
<version>8</version>
</provides>
<configuration>
<jdkHome>${env.JAVA_HOME_8}</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<id>Java7</id>
<version>7</version>
</provides>
<configuration>
<jdkHome>${env.JAVA_HOME_7}</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<id>Java6</id>
<version>6</version>
</provides>
<configuration>
<jdkHome>${env.JAVA_HOME_6}</jdkHome>
</configuration>
</toolchain>
</toolchains>
、、、、、環境変数はJAVA_HOME_13
、関連付けられたJavaバージョンがインストールされているパスを参照するように構成されます。JAVA_HOME_9
JAVA_HOME_8
JAVA_HOME_7
JAVA_HOME_6
FlexyPool親pom.xml構成ファイル
FlexyPoolプロジェクトの親pom.xml
Maven構成ファイルは、グローバルJavaバージョン設定を定義します
<properties>
<jdk.version>8</jdk.version>
...
</properties>
次に、構成済みのJavaバージョンを使用するようにコンパイラーとテストプラグインの両方に指示する必要があります。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>${jdk.version}</version>
</jdk>
</toolchains>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
</plugins>
</build>
別のJavaバージョンを使用するFlexyPool子Mavenモジュールpom.xml
別のflexy-pool-core-java9
Javaバージョンを必要とする子Mavenモジュールは、デフォルトのjdk.version
Mavenプロパティをオーバーライドするだけで済みます。
<properties>
<jdk.version>9</jdk.version>
</properties>
これで、実行可能なJavaの最小バージョンを使用して各モジュールを構築できます。