2011-10-21 52 views
0

我使用Eclipse(實際上,IBM的AST for WebSphere--基於Eclipse 3.2.1)和TFS的Team Explorer Everywhere插件。開始一個新項目,並正從TFS代碼後,我注意到,試圖更新任何Java代碼導致以下錯誤消息:如何使用TFS(Team Explorer Everywhere)插件更正與Eclipse上的代碼完成相關的錯誤?

"This compilation unit is not on the build path of a Java project." 

搜索網頁導致了建議,增加以下到該項目的項目文件:

<natures> 
    <nature>org.eclipse.jdt.core.javanature</nature> 
</natures> 

但是,這樣做會導致我的包聲明(任何類中)被標記爲如下:

The declared package "some.package.name" does not match the expected package "". 
The type java.lang.Object cannot be resolved. It is indirectly referenced from the required .class files. 

ANOT她的建議是更改應用程序的構建路徑,例如刪除並重新建立JRE系統庫。我的經驗表明,只有在「屬性」被添加到.project文件的情況下,該選項纔可用於「屬性」菜單。

作爲最後的手段,我嘗試生成一個新的工作區,並有相同的結果。

TFS有特定的「本質」,我需要添加或解決此問題的另一種解決方案?

回答

0

你究竟在輸入什麼?它是一個現有的Java項目嗎?它是一個Eclipse項目嗎?您正在導入的文件夾是否包含.project文件,或者它是否在子目錄中?或者根本沒有.project文件?

有關包聲明不正確的錯誤使您聽起來像您可能已經在項目層次結構中導入了更深的東西(即導入$/Project/src/some/package/name而不是`$/Project')。這可能嗎?

+0

有一個'.project'文件(這是我嘗試添加'nature'條目的地方)。這最初是作爲Maven項目建立的。我們首先使用'mvn archetype:generate'創建maven結構,然後通過'Import-> Existing Project'將項目導入到Eclipse中。 – Timbuck

0

我發現了這個問題的答案 - 它與我從TFS導入應用程序的方式有關。

我們的應用結構是設置爲(例如):

應用名應用內 | 應用程序名耳 應用程序名戰 應用程序名稱-JAR

所以,只需要導入耳朵,戰爭,罐子等需要。導入app-name-app是問題的根源。對於我的項目,我有一個耳朵和一場戰爭 - 只導入這兩項導致AST/Eclipse行爲正常。

相關問題