Eclipse 下出現 This compilation unit is not on the build path of a Java Project 解決
今天再使用CVS的時候,小組成員都碰見"This compilation unit is not on the build path of a Java Project"這個錯誤。
這個錯誤是在check out工程吼,使用"."操作來自動不全程式碼的時候發生的。
經過一番baidu + google 也沒有找出解決方案。 不過已經把問題鎖定再Eclipse工程描述檔案上(工程根目錄下的.project檔案)。
於是我重新建立了2兩個工程(假定為工程A, 工程B), 在A工程中新增一個類檔案. B工程保持不變。然後將B工程下的".project"檔案copy到A工程下,覆蓋掉A工程的".project"檔案。
此時在A工程中編寫程式碼的時候就會碰見"This compilation unit is not on the build path of a Java Project"這個錯誤。
但是分別開啟兩個工程的.project檔案沒有發現有什麼不同。但是在Eclipse中會出錯。
好了,到現在終於找到了問題的原因了。 但是該如何解決這個問題呢。
下面介紹一下我的解決方法:
1. 刪除本機上的工程[刪除前先確定所有檔案已經提交到了程式碼伺服器上].
2. 從CVS伺服器匯入工程: File -> Import project -> 選擇CVS下的Project from CVS -> Next ....(後面根據嚮導提示匯入工程就行了)。
3. ok ~~ 開啟剛才匯入的工程,問題解決了!!! ^_^...
高興之餘,以後要如何避免此錯誤的發生呢?
CVS伺服器是架設在我的電腦上的,我對CVS中部署的工程細細的檢查了一下,發現在工程的目錄下有一個.project檔案。
此時終於知道問題的元凶是誰了,開發人員由於check out了錯誤的.project檔案導致了這個錯誤。
那麼避免該錯誤的方法就顯而易見了,不去checkout伺服器上的.project檔案(未經測試,只是個人推斷,具體問題需要具體分析)。
原因可能二:
使用maven 管理專案時候 用eclipse 匯入後 專案的目錄如下圖 :
從圖左邊的專案目錄結構可以看出minerva-protals 是下面這幾個專案的父模組名稱 如果在這個地方開啟某個子模組src下面的java類進行編輯是就會出現上面的錯誤 原因 暫且不明。
我們在用shirt+alt+s+r 開啟資源的時候會出現好多java類由於這裡出現的java類中也包含了父模組中某個子模組src下的類 所以導致我們進錯了模組 而出現問題 我們在找java類的時候應該用 shift+alt+t 來找 這裡面顯示的都是能夠編譯的ava類。