Eclipse 2018-09 不会编译 Java 11 源代码;认为它低于1.7
我在Windows 10上运行Eclipse 2018-09(4.9.0)。我使用的是 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
你明白了。
我已经习惯于在Eclipse中更新我的Maven项目(和子项目)。我已经做了一个完整的清理和重建。Alt+F5
因为这在命令行上与Maven编译良好,所以这一定是一个Eclipse问题,不是吗?当然,Eclipse 还不支持所有新的 Java 11 功能,但此代码没有特定于 Java 11 的功能。怎么了?