Java构建路径中缺少项目 - 项目设置

时间:2012-03-21 16:30:10

标签: java eclipse tfs tfs2010 team-explorer-everywhere

有两个java项目导入Eclipse工作区:

  • MainProject
  • SecondProject

MainProject的构建路径上需要SecondProject

在我将两个项目的源代码迁移到Team Foundation Server之前,MainProject的属性已通过SecondProject标签引用了"Java Build Path" -> "Projects"。一切都很好。

现在,通过TFS插件将两个项目从Team Explorer Everywhere导入到干净的Eclipse工作区后,MainProject选项卡上的"Projects"项目不再可见"Add..."按钮对话框。

有趣的是MainProject也不可见,例如,在Project -> Clean...对话框中,但在project properties -> "Project References"对话框中可以看到它...

哪里可能是问题???

Eclipse版本3.6.2(Helios SR2),TFS 2010 SP1

P.S。如果我手动将<classpathentry kind="src" path="/MainProject"/>添加到.classpath,则会显示错误“Project'SecondProject'缺少必需的Java项目:'MainProject'”。

4 个答案:

答案 0 :(得分: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可能包含在那一堆中。

答案 1 :(得分:1)

当你从存储库中检出代码时,你应该确保应用程序有.project,.project可用。你应该从你的代码为'mvn eclipse:eclipse'命令的文件夹中的命令行创建.project重启你的日食。

答案 2 :(得分: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>

答案 3 :(得分:-1)

我不熟悉Team Foundation Server,但如果您想在Eclipse内部和外部构建项目,我建议使用Maven。