web-dev-qa-db-ja.com

Java 11バージョンをSpring / Spring Boot pom.xmlで指定する方法は?

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エラーですが、実際には何も起こりません。

18
Acapulco

私はそれを答えとして追加しているので、より多くの人々に役立つでしょう:

Java 9なので、バージョンは、910などではなく、111.81.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を使用する際に役立ちます。

4
RKrum

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 {

}
1
Ranuka

コンパイラのバージョンのみを指定したい場合は、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のバージョン-プロパティとコンパイラプラグインの違い)を指定する

0
DwB