【问题标题】:Eclipse resetting compiler settings to java 1.5Eclipse 将编译器设置重置为 java 1.5
【发布时间】:2018-02-05 10:58:11
【问题描述】:

我刚刚为一个 maven 项目克隆了一个 git 存储库,然后将该项目作为 maven 项目导入 STS。

我将项目和子模块设置为 java 1.8 项目,然后运行 ​​maven 更新,然后注意到所有 java 1.5 编译器设置似乎都已重新应用。

我无法弄清楚为什么 eclipse 会重置它,即使我取消选中“启用项目特定设置”,它仍然会恢复为选中这个并且 java 5 是默认设置。

我阅读了一篇关于在 maven-compiler-plugin 配置中设置版本的帖子,但该项目目前在任何 pom 文件中都没有该插件的任何配置。

【问题讨论】:

    标签: java eclipse maven spring-tool-suite


    【解决方案1】:

    在您的pom.xml 中输入:

    <project>
      ...
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
      ...
    </project>
    

    您必须这样做的原因是“默认源设置为 1.5,默认目标设置为 1.5,与运行 Maven 的 JDK 无关”。有关详细信息,请参阅Maven Compiler Plugin

    当您从 Eclipse 运行 Maven update 命令而不设置显式 java 版本时,项目将采用默认的 Maven 设置,这就是您最终得到 1.5 Java 版本的原因。

    【讨论】:

    • 好的,谢谢,奇怪的是原始开发人员没有在自述文件中包含此内容。这是 Eclipse 特有的吗,我可以看到以前使用过 intelliJ。
    • @berimbolo 这不是 Eclipse 特有的,请参见:maven.apache.org/plugins/maven-compiler-plugin/examples/…
    • 是的,它确实有效,所以谢谢,我只是不确定为什么我需要改变它!
    • 啊,谢谢,我想我的评论措辞不佳,我的意思是为什么我需要将它添加到 pom 文件中,而其他人之前已经为该项目做出了贡献并且显然使用了 eclipse 但不必这样做它!
    【解决方案2】:

    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。用“10”替换“11”是我能做的最好的事情,以避免编译器错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 2019-03-01
      • 1970-01-01
      • 2017-02-05
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多