Я запускаю Eclipse 2018-09 (4.9.0) в Windows 10. Я использую Open JDK 11 GA. У меня есть проект Maven, который был указан как исходный код Java 8.
<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
для обновления моего проекта Maven (и подпроектов) в Eclipse. Я сделал полную чистку и перестроил.
Поскольку это компилируется с Maven в командной строке, это должно быть проблемой Eclipse, не так ли? Конечно, Eclipse не поддерживает все новые функции Java 11, но этот код не имеет специфических особенностей Java 11. Что не так?