Eclipse .classpath / .project文件中有什么内容?

问题

我们最近遇到了一个针对我们团队成员的Eclipse项目的问题。 Tomcat没有部署应用程序的JAR。

我们最终注意到,.classpathEclipse文件与项目正常的团队成员不同。我们用一个好的项目替换了.classpath文件,并完成了Tomcat部署。

只是出于好奇,并知道如果出现问题,未来将会是什么样的内容,以及.classpath.project文件中的内容。我可以在那里添加什么,这一切意味着什么?


#1 热门回答(114 赞)

Eclipse是插件的运行时环境。实际上,你在Eclipse中看到的所有内容都是Eclipse上安装的插件的结果,而不是Eclipse本身。

.project文件由核心Eclipse平台维护,其目标是从通用的,独立于插件的Eclipse视图中描述项目。这个项目名称是什么?它所涉及的工作区中的其他项目是什么?用于构建项目的构建器是什么? (请记住,"构建"的概念并不特别适用于Java项目,也适用于其他类型的项目)

.classpath文件由Eclipse的JDT功能(feature =插件集)维护。 JDT在项目中保存了多个这样的"元"文件(参见项目内的.settings目录); the.classpath文件只是其中之一。具体来说,.classpath文件包含JDT功能为了正确编译项目所需的信息:项目的源文件夹(即编译的内容);输出文件夹(在哪里编译);和classpath条目(例如工作区中的其他项目,文件系统上的任意JAR文件等)。

盲目地将这些文件从一台机器复制到另一台机器可能存在风险。例如,如果将任意JAR文件放在类路径上(即,位于工作空间外并通过绝对路径命名引用的JAR文件),则.classpath文件将呈现为非可移植状态,必须进行修改以便于移植。可以遵循某些最佳实践来保证.classpath文件的可移植性。


#2 热门回答(29 赞)

.project
在工作空间中创建项目时,会自动生成描述项目的项目描述文件。此文件的唯一目的是使项目自我描述,以便可以在另一个工作区中正确地重新创建已压缩或发布到服务器的项目。
.classpath
Classpath指定Java构建器考虑项目中的哪些Java源文件和资源文件,并指定如何在项目外部查找类型。 Java构建器将Java源文件编译到输出文件夹中,并将资源复制到其中。


#3 热门回答(10 赞)

完整的引用不适用于所提到的文件,因为它们可以通过各种插件进行扩展。

基本上,.project文件存储项目设置,例如构建器和项目自然设置,而.classpath文件定义在运行期间使用的类路径。类路径文件包含与项目中的文件夹对应的src和目标条目; con条目用于描述某种"虚拟"条目,例如JVM库,或者在eclipse插件依赖项的情况下(正常的Java项目依赖项以不同的方式显示,使用特殊的src条目)。