最近,我们的一个团队成员遇到了一个Eclipse项目的问题。Tomcat尚未部署该应用程序的JAR。
我们最终注意到.classpath
Eclipse文件与项目正常的团队成员不同。我们.classpath
用一个正常的项目中的文件替换了该文件,并且Tomcat部署已完成。
出于好奇,想知道将来如果出现问题,和文件中的内容,将会如何处理。我可以在其中添加什么,这意味着什么?.classpath
.project
最近,我们的一个团队成员遇到了一个Eclipse项目的问题。Tomcat尚未部署该应用程序的JAR。
我们最终注意到.classpath
Eclipse文件与项目正常的团队成员不同。我们.classpath
用一个正常的项目中的文件替换了该文件,并且Tomcat部署已完成。
出于好奇,想知道将来如果出现问题,和文件中的内容,将会如何处理。我可以在其中添加什么,这意味着什么?.classpath
.project
Answers:
Eclipse是插件的运行时环境。实际上,您在Eclipse中看到的所有内容都是安装在Eclipse上的插件的结果,而不是Eclipse本身。
该.project
文件由核心Eclipse平台维护,其目的是从与插件无关的通用Eclipse视图描述项目。这个项目叫什么名字?它在工作空间中还引用哪些其他项目?用于构建项目的构建器是什么?(请记住,“构建”的概念并不专门与Java项目有关,但也与其他类型的项目有关)
该.classpath
文件由Eclipse的JDT功能(功能 =插件集)维护。JDT在项目中拥有多个此类“元”文件(请参阅.settings
项目内部的目录);该.classpath
文件只是其中之一。特别是,.classpath
文件中包含的信息,为了JDT的功能需要正确编译项目:该项目的源文件夹(即,什么编译); 输出文件夹(其中编译到); 和类路径条目(例如工作空间中的其他项目,文件系统上的任意JAR文件,等等)。
将此类文件盲目地从一台计算机复制到另一台计算机可能会有风险。例如,如果将任意JAR文件放置在类路径上(即,位于工作空间外部并由绝对路径命名引用的JAR文件),则该.classpath
文件将变为不可移植,必须对其进行修改才能被删除。便携式的。可以遵循某些最佳实践来保证.classpath
文件的可移植性。
git
和来管理我的项目Maven
,则意味着(为简单起见)我拥有一个单一src
文件夹(保存一个简单的“ hello world” .java
文件)的存储库(项目)的“根”文件夹。项目的pox.xml
文件-所以,如果我理解正确的话,就没有必要(或者甚至一定没有必要),以保持:.project
,.classpath
和.settings/
文件/文件夹,以及在git
存储库(即-它们添加到.gitignore
文件为例)?
m2eclipse
可以为您解决这些问题(或者至少应该这样做)。
.project
不应位于中.gitignore
。关于.classpath
-如果你使用m2eclipse
,你的工作空间被配置为更新在启动Maven项目,那么你就应该是与添加OK .classpath
来.gitignore
,但我还没有测试它自己。
.project
并.classpath
添加到.gitignore
。一切正常,我不需要太频繁地更新Git中的这些文件。
.project
在工作空间中创建项目时,将自动生成一个描述项目的项目描述文件。该文件的唯一目的是使项目自描述,以便可以在另一个工作空间中正确地创建已压缩或发布到服务器的项目。
.classpath
类路径指定Java构建器考虑项目中哪些Java源文件和资源文件,并指定如何在项目外部查找类型。Java构建器将Java源文件编译到输出文件夹中,还将资源复制到其中。
提及的文件没有完整的参考,因为它们可以通过各种插件扩展。
基本上,.project文件存储项目设置,例如构建器和项目性质设置,而.classpath文件定义在运行期间使用的类路径。类路径文件包含与项目中的文件夹相对应的src和target条目;con条目用于描述某种“虚拟”条目,例如JVM库或eclipse插件依赖项(使用特殊的src条目以不同的方式显示常规Java项目依赖项)。