Windows 10でEclipse 2018-09(4.9.0)を実行しています。OpenJDK 11 GAを使用しています。 Java 8ソースコードを使用して指定されたMavenプロジェクトがあります。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
これは、コマンドラインでMaven 3.5.3を使用して正常にコンパイルされます。また、Eclipse Eclipse 2018-09(4.9.0)を使用してコンパイルできます。
コンパイルJavaバージョンをJava 11に変更しました:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
それでも、Maven 3.5.3を使用してコマンドラインで問題なくビルドできます。しかし、Eclipse 2018-09では、あちこちでエラーが発生します。
'<>' operator is not allowed for source level below 1.7
Constructor references are allowed only at source level 1.8 or above
Default methods are allowed only at source level 1.8 or above
あなたはアイデアを得る。
すでに使用していますAlt+F5
EclipseでMavenプロジェクト(およびサブプロジェクト)を更新します。完全にクリーンアップして再構築しました。
これはコマンドラインでMavenを使用して正常にコンパイルされるため、これはEclipseの問題である必要があります。もちろん、Eclipseはすべての新しいJava 11の機能をまだサポートしていませんが、このコードにはJava 11固有のfeatures。何が問題なのですか?
更新: Java 11は完全に統合されています inEclipseバージョン4.10以降(2018-12-19リリース)、そうではありませんもうこのプラグインをインストールする必要があります。
何らかの理由で、追加のEclipseプラグインをインストールする必要があります " Java 11 Eclipse for Eclipse 2018-09(4.9) "( Eclipse Photon 4.9でも)
Eclipse Marketplaceでプラグインが利用できなくなっていることがわかります。私は誰かがそのインストールURLを見つけました、ここに追加してください:
Works for Eclipse-このMavenコンパイラプラグイン構成でのSTS 4.0.1(Eclipse 4.9ベース)、Maven 3.6.0
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
Eclipseはpomからバージョンを取得していないようです。
質問のようにコンパイラのソースとターゲットのプロパティを提供するか、この回答で説明されている新しいリリースプロパティ のいずれかを使用して、pom設定をテストし、動作することを確認しました 、最新の Eclipse 2018-09 プラグインのJava 11サポートを使用します。
JDK 11がEclipse設定で正しくセットアップされていることが重要です。 「Installed JRE」設定ページでJDK 11を追加し、「Execution Environment」設定ページでJavaSE-11と一致させます。それ以外の場合、Mavenプロジェクトを更新すると、デフォルトのJDKが使用されることになり、これが問題の原因である可能性があります。
この問題はEclipse 2018-12で修正されています。そのバージョンにアップグレードすると、問題が解決します。