如何使用 TFS(Team Explorer Everywhere)插件更正与 Eclipse 上的代码完成相关的错误?

Posted

技术标签:

【中文标题】如何使用 TFS(Team Explorer Everywhere)插件更正与 Eclipse 上的代码完成相关的错误?【英文标题】:How to correct errors associated with code completion on Eclipse with TFS (Team Explorer Everywhere) plugin? 【发布时间】:2011-12-12 21:07:36 【问题描述】:

我正在使用 Eclipse(实际上是 IBM 的用于 WebSphere 的 AST——基于 Eclipse 3.2.1)和用于 TFS 的 Team Explorer Everywhere 插件。在开始一个新项目并从 TFS 获取代码后,我注意到尝试更新任何 Java 代码会导致以下错误消息:

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

在网上搜索后,建议将以下内容添加到项目的 .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.

另一个建议是更改应用程序的构建路径,例如删除并重新建立 JRE 系统库。我的经验表明,如果将“性质”添加到 .project 文件中,此选项仅在“属性”菜单中可用。

作为最后的手段,我尝试生成一个新的工作区并在那里得到相同的结果。

是否有我需要添加的 TFS 的特定“性质”,或此问题的其他解决方案?

【问题讨论】:

【参考方案1】:

您实际导入的是什么?它是现有的 Java 项目吗?它是一个 Eclipse 项目吗?您要导入的文件夹是否包含 .project 文件,还是位于子目录中?还是根本没有.project 文件?

关于包声明不正确的错误听起来像是您可能在项目层次结构中导入了更深层次的东西(即导入$/Project/src/some/package/name而不是`$/Project'。)这可能吗?

【讨论】:

有一个.project 文件(我尝试在其中添加nature 条目)。这最初是作为一个 Maven 项目设置的。我们首先使用mvn archetype:generate创建maven结构,然后通过Import-&gt;Existing Project将项目导入Eclipse。【参考方案2】:

我找到了这个问题的答案 - 这与我如何从 TFS 导入应用程序有关。

我们的应用程序结构设置为(例如):

应用程序名称应用程序 | 应用程序名称耳 应用程序名称战争 应用名称-jar

所以,只需根据需要导入耳朵、战争、罐子等。导入 app-name-app 是问题的根源。对于我的项目,我有一个耳朵和一个战争 - 只导入这两个项目导致 AST/Eclipse 行为正确。

【讨论】:

以上是关于如何使用 TFS(Team Explorer Everywhere)插件更正与 Eclipse 上的代码完成相关的错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VS 2019 Team Explorer 在浏览器中打开工作项?

Team Explorer 2010 是免费的吗?

Jetbrains Idea连接TFS时配置的坑

如何在 Eggplant 上使用 TFS(Team Foundation Server)?

如何使用C#(Visual Studio)从TFS(Team Foundation Server)获取/复制文件

导出 TFS 2008 (Team Foundation Server) 组和权限