MavenでJavaのバージョンを設定する

MavenでJavaバージョンを設定する

1. 概要

このクイックチュートリアルでは、set the Java version in Mavenを実行する方法を示します。

先に進む前に、check the default JDK version of Mavenを実行できます。 mvn -vコマンドを実行すると、Mavenが実行されているJavaバージョンが表示されます。

参考文献:

Mavenプロファイルのガイド

Mavenプロファイルを使用して、さまざまなビルド構成を作成する方法を学習します。

Mavenコンパイラプラグイン

Mavenプロジェクトのソースコードをコンパイルするために使用されるMavenコンパイラプラグインの使用方法を学びます。

2. コンパイラプラグインを使用する

compiler pluginで目的のJavaバージョンを指定できます。

2.1. コンパイラプラグイン

最初のオプションは、コンパイラプラグインプロパティでバージョンを設定することです。


    1.8
    1.8

Mavenコンパイラは、–targetおよび–source versionsでこのコマンドを受け入れます。 Java 8言語機能を使用する場合は、–source1.8に設定する必要があります。

また、コンパイルされたクラスがJVM 1.8と互換性を持つためには、–targetの値は1.8である必要があります。

両方のデフォルト値は1.6バージョンです。

または、コンパイラプラグインを直接構成できます。


    
        maven-compiler-plugin
        
            1.8
            1.8
        
    

maven-compiler-pluginには、-sourceおよび-targetバージョンを超えてコンパイルプロセスをより細かく制御できるようにする追加の構成プロパティもあります。

2.2  Java 9 and Beyond

さらに、starting from JDK 9 version, we can use a new -release command-line option。 この新しい引数は、指定されたプラットフォームバージョンの実装にリンクするクラスファイルを生成するようにコンパイラを自動的に構成します。

By default, the -source and -target options don’t guarantee a cross-compilation

これは、古いバージョンのプラットフォームでアプリケーションを実行できないことを意味します。 さらに、古いJavaバージョンのプログラムをコンパイルして実行するには、-bootclasspathオプションも指定する必要があります。

正しくクロスコンパイルするために、新しい-releaseオプションは、-source,-target and -bootclasspathの3つのフラグを置き換えます。

サンプルを変換した後、プラグインのプロパティについて次のように宣言できます。


    7

そして、3.6バージョンから始まるmaven-compiler-pluginについては、次のように書くことができます。


    org.apache.maven.plugins
    maven-compiler-plugin
    3.8.0
    
        7
    

お気づきのとおり、we can add the Java version in a new <release> attribute。 この例では、Java 7用にアプリケーションをコンパイルします。

さらに、マシンにJDK7をインストールする必要はありません。 Java 9には、新しい言語機能をJDK 7とリンクするためのすべての情報がすでに含まれています。

3. SpringBoot仕様

Spring Bootアプリケーションは、the pom.xml fileのpropertiesタグ内でJDKバージョンを指定します。

まず、プロジェクトに親としてspring-boot-starter-parentを追加する必要があります。


    org.springframework.boot
    spring-boot-starter-parent
    2.0.5.RELEASE

この親POMを使用すると、デフォルトのプラグインと、Javaバージョンを含む複数のプロパティを構成できます。デフォルトでは、Javaバージョンは1.8です。

ただし、java.versionプロパティを指定することで、親のデフォルトバージョンをオーバーライドできます。


    1.9

By setting the java.version property we declare that the source and the target Java versions are both equal to 1.9

とりわけ、このプロパティはSpring Boot Specificationであることに留意する必要があります。 さらに、starting from the Spring Boot 2.0, Java 8 is the minimum version.

つまり、古いJDKバージョンではSpringBootを使用または構成できません。

4. 結論

このクイックチュートリアルでは、MavenプロジェクトでJavaバージョンを設定する方法について説明します。

要約すれば:

  • <java.version>の使用は、SpringBootアプリケーションでのみ可能です。

  • 単純なケースでは、maven.compiler.source maven.compiler.target propertiesが最適です。

  • 最後に、コンパイルプロセスをより細かく制御するには、maven-compiler-pluginの構成設定を使用します