Eclipse .classpath / .project文件中包含什么?


143

最近,我们的一个团队成员遇到了一个Eclipse项目的问题。Tomcat尚未部署该应用程序的JAR。

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

出于好奇,想知道将来如果出现问题,文件中的内容将会如何处理。我可以在其中添加什么,这意味着什么?.classpath.project


.classpath文件特定于Java吗?这个问题似乎与语言无关,但是从这个答案看来,它只与Java有关。
Casey Kuball

Answers:


144

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

.project文件由核心Eclipse平台维护,其目的是从与插件无关的通用Eclipse视图描述项目。这个项目叫什么名字?它在工作空间中还引用哪些其他项目?用于构建项目的构建器是什么?(请记住,“构建”的概念并不专门与Java项目有关,但也与其他类型的项目有关)

.classpath文件由Eclipse的JDT功能(功能 =插件集)维护。JDT在项目中拥有多个此类“元”文件(请参阅.settings项目内部的目录);该.classpath文件只是其中之一。特别是,.classpath文件中包含的信息,为了JDT的功能需要正确编译项目:该项目的源文件夹(即,什么编译); 输出文件夹(其中编译); 和类路径条目(例如工作空间中的其他项目,文件系统上的任意JAR文件,等等)。

将此类文件盲目地从一台计算机复制到另一台计算机可能会有风险。例如,如果将任意JAR文件放置在类路径上(即,位于工作空间外部并由绝对路径命名引用的JAR文件),则该.classpath文件将变为不可移植,必须对其进行修改才能被删除。便携式的。可以遵循某些最佳实践来保证.classpath文件的可移植性。


58
作为这件事的局外人,所有这些都转化为“ Eclipse以某种方式设法将有关项目工作区管理的所有内容变成一种难以理解的黑色艺术,任何人都难以理解”。
沃伦·P

1
@Isaac-出于好奇,如果我使用git和来管理我的项目Maven,则意味着(为简单起见)我拥有一个单一src文件夹(保存一个简单的“ hello world” .java文件)的存储库(项目)的“根”文件夹。项目的pox.xml文件-所以,如果我理解正确的话,就没有必要(或者甚至一定没有必要),以保持:.project.classpath.settings/文件/文件夹,以及在git存储库(即-它们添加到.gitignore文件为例)?
Guy Avraham

1
@GuyAvraham,这取决于您如何使用Eclipse,特别是如何初始化工作区。您是否在新的工作区上启动Eclipse,然后使用“导入现有的Maven项目”?如果是这样,那么您是对的-确实不需要这些文件,因为m2eclipse可以为您解决这些问题(或者至少应该这样做)。
艾萨克(Isaac)

1
@buncis .project不应位于中.gitignore。关于.classpath-如果你使用m2eclipse,你的工作空间被配置为更新在启动Maven项目,那么你就应该是与添加OK .classpath.gitignore,但我还没有测试它自己。
艾萨克(Isaac)

1
@buncis只是更正了最后一条评论。显然,如今M2E在配置项目方面做得很好。我最近在大约150个各种类型的Java项目的代码库中工作。我从所有人中删除.project.classpath添加到.gitignore。一切正常,我不需要太频繁地更新Git中的这些文件。
以撒

37

.project

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

.classpath

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


11

提及的文件没有完整的参考,因为它们可以通过各种插件扩展。

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


3

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

它将该.project文件描述为:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.