Eclipse 将编译器设置重置为 java 1.5
Eclipse resetting compiler settings to java 1.5
我刚刚为一个 Maven 项目克隆了一个 git 存储库,然后将该项目作为 Maven 项目导入到 STS 中。
我将项目和子模块设置为 java 1.8 项目,然后 运行 一个 maven 更新,然后注意到所有 java 1.5 编译器设置似乎已经重新申请。
我不明白为什么 eclipse 会重置这个,即使我取消选中 'Enable project specific settings' 它仍然会恢复到选中这个并且 java 5 是默认值。
我阅读了 post 关于在 maven-compiler-plugin 配置中设置版本的文章,但该项目目前在任何 pom 文件中都没有针对该插件的任何配置。
在你的 pom.xml
中输入:
<project>
...
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
...
</project>
您必须这样做的原因是 "the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with"。有关详细信息,请参阅 Maven Compiler Plugin。
当您从 Eclipse 运行 Maven update 命令未设置显式 java 版本时,项目将采用默认的 Maven 设置,这就是为什么您最终得到 1.5 Java 版本。
Eclipse Photon Release (2018) 似乎最多只能识别 Java 10。使用
<project>
...
<properties>
<jdk.version>11</jdk.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
...
</project>
导致它恢复到 1.5。将“11”替换为“10”是我为避免编译器错误所能做的最好的事情。
我刚刚为一个 Maven 项目克隆了一个 git 存储库,然后将该项目作为 Maven 项目导入到 STS 中。
我将项目和子模块设置为 java 1.8 项目,然后 运行 一个 maven 更新,然后注意到所有 java 1.5 编译器设置似乎已经重新申请。
我不明白为什么 eclipse 会重置这个,即使我取消选中 'Enable project specific settings' 它仍然会恢复到选中这个并且 java 5 是默认值。
我阅读了 post 关于在 maven-compiler-plugin 配置中设置版本的文章,但该项目目前在任何 pom 文件中都没有针对该插件的任何配置。
在你的 pom.xml
中输入:
<project>
...
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
...
</project>
您必须这样做的原因是 "the default source setting is 1.5 and the default target setting is 1.5, independently of the JDK you run Maven with"。有关详细信息,请参阅 Maven Compiler Plugin。
当您从 Eclipse 运行 Maven update 命令未设置显式 java 版本时,项目将采用默认的 Maven 设置,这就是为什么您最终得到 1.5 Java 版本。
Eclipse Photon Release (2018) 似乎最多只能识别 Java 10。使用
<project>
...
<properties>
<jdk.version>11</jdk.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
...
</project>
导致它恢复到 1.5。将“11”替换为“10”是我为避免编译器错误所能做的最好的事情。