2012-03-21 122 views
6

有導入到Eclipse工作區兩個Java項目:缺少項目Java構建路徑 - 項目設置

  • MainProject
  • SecondProject

MainProject需要的構建路徑上SecondProject

在我將兩個項目的源代碼遷移到我們的Team Foundation Server之前,的屬性中通過"Java Build Path" -> "Projects"選項卡引用了MainProject。一切正常。

現在,經過兩個項目都從TFS通過Team Explorer Everywhere插件導入到一個乾淨的Eclipse工作區,該項目MainProject不再可見"Projects"選項卡上,並在"Add..."按鈕對話框。

有趣的是,MainProject也是不可見的,例如,在Project -> Clean...對話框,但它是在project properties -> "Project References"對話框中可見......

哪裏可能是這個問題???

Eclipse版本3.6.2(赫利俄斯SR2),TFS 2010 SP1

附:如果手動添加<classpathentry kind="src" path="/MainProject"/>.classpath,會顯示錯誤「Project'SecondProject'」缺少所需的Java項目:「MainProject」。

回答

8

我可能完全錯誤,但聽起來像Eclipse可能不會將導入的TFS項目看作「Java」項目(Eclipse也支持「普通」項目等)。當您查看項目的包層次結構中的* .java文件時,它們是否在各自的圖標中具有純藍色的「J」或是「空洞的」?

如果是前者,那麼Eclipse是看到你的項目,Java項目,我會徹底糊塗了,你可以忽略我的答案;)

如果是後者,那麼這個項目是不配置爲「Java項目」。這可能是一個真正的混亂處理......但在這種情況下,一個解決方案可能是重命名您的現有項目到其他項目(例如MainProjectOld,SecondProjectOld),創建新的「MainProject」和「SystemProject」項目作爲新的「Java」項目,然後將所有源代碼從舊的源文件複製到新的源文件夾。我對TeamFoundationServer瞭解不多,但是我現在假設您可以將您的新項目與TFS重新連接,並將它們重新委託爲Java項目。

編輯

底線是,如果是後者,那麼它聽起來就像是項目配置XML文件並沒有使它成爲TFS和Eclipse是困惑應該如何對待項目(簡單的,Java或其他)在從TFS初始導入之後。我已經在CVS和SVN中看到過這種情況,所以我認爲這是Eclipse支持的任何版本控制系統中的一個相當常見的問題。 TFS可能包含在那一羣中。

+2

是的,情況正是如此!可惜我無法多次提示答案:)所有* .java文件都存在「J」,但項目圖標上缺少「J」。這是一個很好的提示! TFS中缺少.project文件,導致所有這些問題。
修復之後,您可以通過添加' org.eclipse.jdt.core.javanature'和'org.eclipse.jdt.core.javabuilder'手動修改.classpath文件。至少這解決了我的問題。 – Dime 2012-03-22 07:48:17

+0

@Dime:如果你不想檢查你的'.project'文件(雖然這就是我非正式推薦的),但可以幫助你的提示:在從TFS嚮導導入時,你可以選擇「Show the New Project不是Eclipse項目的文件夾嚮導「可以在導入時自定義」.project「創建。 – 2012-03-22 14:57:43

+0

真棒,很高興它解決了!我用同樣的問題掙扎着,似乎永遠都在使用CVS ......很高興你能夠迅速解決它:) – CodeBlind 2012-03-22 18:24:09

-1

我對Team Foundation Server並不熟悉,但如果您想在Eclipse內部或外部構建項目,我建議使用Maven。

+0

您的回答與問題無關。 – 2012-03-21 16:59:13

+0

?當然了。這是推薦的方式,恕我直言。不要直接與.classpath文件混在一起。使用Maven構建您的項目。然後在CI服務器中使用Maven插件。 – Puce 2012-03-21 17:37:21

+0

我認爲我的確誤解了這個問題。它似乎是關於在Eclipse中重新導入而不是在TFS上構建的。儘管這可能是下一個問題。 – Puce 2012-03-21 18:42:46

0
First go to your project root and edit .project file . make sure there have entry for javabuilder as following . If not then 
<buildCommand> 
    <name> org.eclipse.jdt.core.javabuilder </name> 
    <arguments> 
    </arguments> 
</buildCommand> 
Full .Project file looks like. 

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>Your Project </name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <buildCommand> 
      <name>org.eclipse.wst.jsdt.core.javascriptValidator</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.wst.common.project.facet.core.builder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.wst.validation.validationbuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> 
     <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> 
     <nature>org.eclipse.wst.common.project.facet.core.nature</nature> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
     <nature>org.eclipse.wst.jsdt.core.jsNature</nature> 
    </natures> 
</projectDescription> 
1

您應該確保應用程序具有的.project,.project文件可能無法使用,當你從倉庫檢出的代碼,你應該從文件夾中的命令行,其中你的代碼是「MVN Eclipse中創建的.project: eclipse'命令並重新啓動你的eclipse。