"Faceted Project Problem (Java Version Mismatch)" error message

160,916

Solution 1

Did you check your Project Properties -> Project Facets panel? (From that post)

A WTP project is composed of multiple units of functionality (known as facets).

The Java facet version needs to always match the java compiler compliance level.
The best way to change java level is to use the Project Facets properties panel as that will update both places at the same time.

WTP

The "Project->Preferences->Project Facets" stores its configuration in this file, "org.eclipse.wst.common.project.facet.core.xml", under the ".settings" directory.

The content might look like this

<?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>

Check also your Java compliance level:

Java compliance level

Solution 2

You have two options to fix the issue:

1- Manually make sure the two versions match.
2- Use the IDE's help as follows:
- Right mouse click on the error in the 'Problems' view
- Select the 'Quick Fix' menu item from the pop-up menu
- Select the right compiler level in the provided dialog and click 'Finish'.

Taken from Eclipse: Java compiler level and project facet mismatch

Also gives location of where you can access the Java compiler and facet version.

Solution 3

The project facets should be derived automagically by the M2Eclipse plugin from the POM configuration. If you make some changes to the POM and need Eclipse to take them into account, right-click on your project, then go to Maven > Update Project Configuration. You should not set project facets manually.

Share:
160,916
Blankman
Author by

Blankman

... .. . blank

Updated on July 05, 2022

Comments

  • Blankman
    Blankman almost 2 years

    Eclipse's "problems" tab is displaying this error:

    Description: Java compiler level does not match the version of the installed Java project facet.
    Resource: groupping
    Path: [blank]
    Location: Unknown
    Type: Faceted Project Problem (Java Version Mismatch)

    My pom.xml has this setting:

    <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>
    

    Where else could the settings be mismatched?

  • Devanshu Mevada
    Devanshu Mevada over 14 years
    @VonC You're of course right about the way to configure this manually but when using maven and the m2eclipse plugin, the plugin should - and actually does - configure this for you. All the required meta-data are in the POM: JDK level version, Servlet API, etc. Developers don't have to set this manually after an import or any other POM update, which is a good thing. This applies also to the maven-eclipse-plugin (that generates the facet based on the POM meta-data).
  • Garret Wilson
    Garret Wilson about 13 years
    This was probably true when you wrote it, but the latest version of m2e as of 2011-05 doesn't manually add dependencies like the old versions did, so you have to manually convert the project to a faceted project and then manually edit configuration files to get the right jars copied to your lib directory. It's a pain. See sites.google.com/site/michaelvorburger/m2e-and-wtp
  • priyanka
    priyanka over 6 years
    Thanks a lot!It helped
  • L. Guthardt
    L. Guthardt over 6 years
    There is already an accepted answer, that is not only high upvoted but solves OP's issue as well.