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

tot*_*pse 135 java eclipse configuration-files eclipse-wtp

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

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

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

Isa*_*aac 136

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

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

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

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

  • 作为这个问题的局外人,这一切都转化为"Eclipse以某种方式设法将项目工作区管理的一切都变成了一个难以理解的黑色艺术,这对任何人来说都难以理解". (49认同)
  • @Isaac - 出于好奇,如果我使用 `git` 和 `Maven` 管理我的项目,这意味着(为简单起见)我有(为简单起见)存储库(项目)的“根”文件夹和一个 `src` 文件夹(包含一个简单的“hello world”`.java` 文件)和项目的`pox.xml` 文件——所以,如果我理解正确的话,没有必要(甚至可能根本没有必要)保留:`.project`, `.classpath` 和 `.settings/` 文件/文件夹以及 `git` 存储库中的(例如,将它们添加到 `.gitignore` 文件中)? (2认同)
  • @GuyAvraham 这取决于您如何使用 Eclipse,特别是 - 您如何初始化工作区。您是否在新工作区上启动 Eclipse,然后使用“导入现有 Maven 项目”?如果是这样,那么你是对的——这些文件都不是真正需要的,因为 `m2eclipse` 会为你处理这些(或者,至少,这就是它应该做的)。 (2认同)
  • @buncis 只是纠正最后一条评论。显然,M2E 现在在配置项目方面做得非常好。我最近参与了大约 150 个各种类型的 Java 项目的代码库。我从所有这些中删除了“.project”和“.classpath”,并将其添加到“.gitignore”中。一切运行良好,我不需要太频繁地无休止地更新 Git 中的这些文件。 (2认同)

Rup*_*dav 32

.project

在工作空间中创建项目时,将自动生成描述项目的项目描述文件.此文件的唯一目的是使项目自我描述,以便可以在另一个工作区中正确地重新创建已压缩或发布到服务器的项目.

.classpath

Classpath指定Java构建器考虑项目中的哪些Java源文件和资源文件,并指定如何在项目外部查找类型.Java构建器将Java源文件编译到输出文件夹中,并将资源复制到其中.


Zol*_*lyi 11

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

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


sen*_*pai 5

此 Eclipse 文档包含有关文件中标记的详细信息.project项目描述文件

它将.project文件描述为:

在工作区中创建项目时,会自动生成描述该项目的项目描述文件。该文件的目的是使项目具有自描述性,以便可以在另一个工作区中正确地重新创建压缩或发布到服务器的项目。该文件始终称为“.project”