新檢出項目,發現代碼無故報錯,各種嘗試,最終發現是因為 項目右鍵中的 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文件無法正確編譯的問題。