【问题标题】:"Faceted Project Problem (Java Version Mismatch)" error message“分面项目问题(Java 版本不匹配)”错误消息
【发布时间】:2011-01-15 10:43:19
【问题描述】:

Eclipse 的“问题”选项卡显示此错误:

说明:Java 编译器级别与安装的 Java 项目方面的版本不匹配。
资源:分组
路径:[空白]
地点:未知
类型:分面项目问题(Java 版本不匹配)

我的pom.xml 有这个设置:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
        </configuration>
    </plugin>
</plugins>

还有哪些设置不匹配?

【问题讨论】:

    标签: java eclipse maven-2 m2eclipse


    【解决方案1】:

    您是否检查了您的Project Properties -&gt; Project Facets 面板? (来自that post

    一个 WTP 项目由多个功能单元(称为 面)。

    Java facet 版本需要始终与 java 编译器合规性相匹配 水平。
    更改 Java 级别的最佳方法是使用 Project Facets 属性面板,因为这将同时更新两个地方。

    Project-&gt;Preferences-&gt;Project Facets”将其配置存储在“.settings”目录下的“org.eclipse.wst.common.project.facet.core.xml”文件中。

    内容可能如下所示

    <?xml version="1.0" encoding="UTF-8"?>
    <faceted-project>
      <runtime name="WebSphere Application Server v6.1"/>
      <fixed facet="jst.java"/>
      <fixed facet="jst.web"/>
      <installed facet="jst.java" version="5.0"/>
      <installed facet="jst.web" version="2.4"/>
      <installed facet="jsf.ibm" version="7.0"/>
      <installed facet="jsf.base" version="7.0"/>
      <installed facet="web.jstl" version="1.1"/>
    </faceted-project>
    

    还要检查您的Java compliance level

    【讨论】:

    • 非常感谢!它帮助了
    【解决方案2】:

    您有两种方法可以解决此问题:

    1- 手动确保两个版本匹配。
    2- 使用 IDE 的帮助如下:
    - 右键单击​​“问题”视图中的错误
    - 从弹出菜单中选择“快速修复”菜单项
    - 在提供的对话框中选择正确的编译器级别,然后单击“完成”。

    取自Eclipse: Java compiler level and project facet mismatch

    还提供了可以访问 Java 编译器和构面版本的位置。

    【讨论】:

      【解决方案3】:

      项目方面应该由 M2Eclipse 插件从 POM 配置自动派生。如果您对 POM 进行了一些更改并需要 Eclipse 将其考虑在内,请右键单击您的项目,然后转到 Maven > Update Project Configuration。您不应手动设置项目构面。

      【讨论】:

      • @VonC 你当然是正确的手动配置它,但是当使用 maven 和 m2eclipse 插件时,插件应该 - 并且实际上 - 为你配置它。所有必需的元数据都在 POM 中:JDK 级别版本、Servlet API 等。开发人员不必在导入或任何其他 POM 更新后手动设置,这是一件好事。这也适用于 maven-eclipse-plugin(基于 POM 元数据生成构面)。
      • 你写的时候可能是这样,但是 2011-05 的最新版本的 m2e 并没有像旧版本那样手动添加依赖项,所以你必须手动将项目转换为faceted 项目,然后手动编辑配置文件以将正确的 jar 复制到您的 lib 目录。这是一种痛苦。见sites.google.com/site/michaelvorburger/m2e-and-wtp
      【解决方案4】:

      在 Spring STS 中,右键单击项目并选择“打开项目”,此设置在后台执行必要的操作并将项目带回工作空间。

      感谢和问候 文加特马兰

      【讨论】:

        【解决方案5】:

        我在 Java 1.6 上运行应用程序时遇到了这个问题,而我为不同的应用程序安装了 Java 6、7、8 的所有三个版本。我访问了 Navigator 视图并手动从 facet.core.xml 中删除了不需要的方面。干净的构建和wallah!

        <?xml version="1.0" encoding="UTF-8"?>
        

        <fixed facet="jst.java"/>
        
        <fixed facet="jst.web"/>
        
        <installed facet="jst.web" version="2.4"/>
        
        <installed facet="jst.java" version="6.0"/>
        
        <installed facet="jst.utility" version="1.0"/>
        

        【讨论】:

        • 已经有一个被接受的答案,它不仅得到了很高的评价,而且也解决了 OP 的问题。
        猜你喜欢
        • 2021-09-21
        • 2018-01-07
        • 1970-01-01
        • 2011-03-07
        • 2020-06-09
        • 2011-12-04
        • 2019-09-02
        • 2022-01-24
        • 2011-10-13
        相关资源
        最近更新 更多