新检出项目,发现代码无故报错,各种尝试,最终发现是因为 项目右键中的 project Facets 属性中的 java 后面的 version 版本和项目 build path 的 jdk 版本不一致,这个在检出项目后经常会自动出现不一致的情况。
将其改成一致的就可以了。
另外可以参考下面文章:
原文:https://www.cnblogs.com/zj0208/p/6306377.html
Eclipse的Project Facets属性
Project Facets
1. 'Project Facets'可理解为:项目的特性,主流 IDE (Eclipse IDEA) 都提供了 facet 的配置。
'Project Facets'作用:暂不描述,先看下面的实验。
2. 来个例子:
1) 新建一个java project(右键-->New-->Java Project)。
2) 来看一下他的'Project Facets'都选中了哪些属性(选中项目右键-->Properties-->Project Facets)
只选中了一个java有没有。这个是会被默认选中的配置。这是一个最简单的java项目。
3) 这时我想把这个java项目做成一个web项目。
3.1) Project Facets中选中Dynamic Web Module[动态web模板]
3.2) 点击Apply
3.3) 看看此时的项目结构发生了什么变化,增加了WebContent目录有木有。
3.4)重新打开Project Facets面板框,'JavaScript'选项框也被默认选中了。
4) 我又想在项目中使用JPA了。在Project Facets面板选中JPA,点击OK。看看项目结构发生了生么变化。
在src文件夹下,又多了JPA的元数据文件。
3. 其他选项的作用我也不是很明了,不再一一尝试了,但是'Project Facets'的作用应该可以理解了。
简单归纳一下'Project Facets'的作用特点(此处拷贝而来):
- facet 定义了 java ee 项目的特性和要求
- 为项目添加 EAR facet 会自动添加 web.xml (deployment descriptor file) ,并重新设置classpath
- 项目创建时至少已经有一个 facet,开发人员可以按需添加其他 facet
- 有的 facet 会依赖其他 facet
- 有的 facet 可能和其他 facet 互斥
- facet 可以设置版本
4. 总结:项目需要哪些应用,添加对应的特性即可。
Java Compiler
关于Java Compiler只说一点:
Java Compiler选择的版本必须和'Project Facets'中指定的java版本一致。
否则Eclipse会报异常:Java compiler level does not match the version of the installed Java project facet。
附配置图一张:
Java Build Path
右侧一排按钮主要用来添加jar包,变量,类库,class文件等资源文件。不做细讲。
也只说明一点:
Java Build Path中引用的jdk的版本需要和'Project Facets'中配置的java版本一致。
Run Configurations面板中的JRE配置也需要和'Project Facets'中配置的java版本一致。
如果jdk版本不一致,会发生jsp文件无法正确编译的问题。