As stated in the documentation about facets in general:
Project facets in Eclipse define characteristics and requirements for Java EE projects and are used as part of the runtime configuration
And the Java facet itselt in the project settings shows a description:
Adds support for writing applications using Java programming language.
All this is very general information and I cannot imagine what this facet can do for me. There are already at least two projet settings regarding java:
- Java build path / Libraries / JRE System Library which is the default runtime, when I execute a class (test or main) from that project.
- Java compiler which specifies (source and target) java compliance version and can optionally reference version of java from build path above.
As I see, the only result of java facet are version mismatch errors, if I set incorrect version.
I am using STS-3.6.3 and the projects are simple maven jar projects that are referenced by a maven war project. I run and debug the war project inside Tomcat from eclipse, so some of the code changes are hot redeployed (I thing, facets have no impact on this).
So, why should I keep the java facet instead of simply turning it off?