Spring(またはSpring Boot)のpom.xmlファイルで使用されるバージョンとしてJava 11を指定する正しい方法は何ですか?
つまり、pomのJava.version
プロパティにどの値を設定する必要がありますか?
Java 8の場合、 ドキュメントが示すように1.8
を使用します 、Java 9の場合は1.9
です。
Java 11が1.11
である可能性は低いと思われますが)かどうかわかりません。また、11
を使用するときにmaven-compiler-plugin
として指定されているのを見ましたが、コンパイラプラグインを使用していません。
例えば.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
私は周りを検索しましたが、Javaバージョンに関連するブログ投稿と同様に、私が読んだほとんどのドキュメントはバージョン8または9のみを表示しています。
だから私は何を使うべきですか? 1.11
または単に11
?
私は両方を試しましたが、私のWebサーバーは正しく起動し、正しくコンパイルされているようです(IntelliJはInformation:javac 11.0.2 was used to compile Java sources
を示しています)。ただし、Java.version
の値を変更しても何でもできるとは確信していません。 100
とすべてが正常に動作します。
Java 11 と互換性のある最小Springバージョン、 Spring Bootが原因で失敗するJDK 11 および Spring 4.3.xへのOpenJDK 11 への移行後のHibernateエラーですが、実際には何も起こりません。
私はそれを答えとして追加しているので、より多くの人々に役立つでしょう:
Java 9なので、バージョンは、9
、10
などではなく、11
、1.8
、1.7
などとして指定されます。さらに読む here 。
<release>11</release>
でJDKバージョンを指定する方法は正しいです。 maven-compiler-plugin 3.6
で導入され、以下のように古い方法と同等です。
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source> -- Using JDK 11 to compile
<target>11</target> -- Using JDK 11 as target
</configuration>
</plugin>
</plugins>
This 投稿は、JDK 11でmaven-compiler-plugin
を使用する際に役立ちます。
gradleプロジェクトのSpring(またはSpring Boot)で使用されるバージョンとしてJava 11を指定しようとしている場合は、sourceCompatibility = '11'のいずれかを使用します。または、build.gradleファイルのsourceCompatibility = '1.11'
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
}
apply plugin: 'io.spring.dependency-management'
group = 'au.com.ranuka'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
//or
sourceCompatibility = '1.11'
repositories {
mavenCentral()
}
dependencies {
}
コンパイラのバージョンのみを指定したい場合は、POMファイルでmaven-compiler-pluginについて言及する必要はありません。代わりに、これらのプロパティをpomファイルに追加します
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
編集:悪いことに、maven-compiler-pluginの3.6リリース以降、バージョン番号のプロパティが変更されたようです。上記の例は、Java 8以下の場合は問題ありません。Java 9の場合は、このプロパティを追加します。
<properties>
<maven.compiler.release>9</maven.compiler.release>
</properties>
この質問に対する受け入れられた回答を確認してください: Java Mavenのバージョン-プロパティとコンパイラプラグインの違い)を指定する