我正在使用Eclipse(实际上,IBM的WebSphere for WebSphere - 基于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的特定“性质”,还是针对此问题的其他解决方案?
答案 0 :(得分:0)
你实际进口的是什么?它是现有的Java项目吗?它是一个Eclipse项目吗?您导入的文件夹是包含.project
文件,还是在子目录中?或者根本没有.project
文件?
关于包声明不正确的错误使得听起来您可能已经在项目层次结构中导入了更深层次的东西(即导入$/Project/src/some/package/name
而不是'$ / Project'。)这可能吗?
答案 1 :(得分:0)
我找到了这个问题的答案 - 它与我从TFS导入应用程序的方式有关。
我们的应用程序结构设置为(例如):
应用程序名,应用程序 | 应用程序名耳 应用程序名战 应用程序名-罐
因此,只需根据需要输入耳朵,战争,罐子等。导入app-name-app是问题的根源。对于我的项目,我有一个耳朵和一个战争 - 只导入这两个项目导致AST / Eclipse表现正常。