我们最近遇到了一个针对我们团队成员的Eclipse项目的问题。 Tomcat没有部署应用程序的JAR。
我们最终注意到.classpath
Eclipse文件与项目正常的团队成员不同。我们用一个项目中的.classpath
文件替换了一个好的,并且Tomcat部署完成了。
只是出于好奇并且知道将来出现什么问题, .classpath
和.project
文件中的内容。我可以在那里添加什么,这一切意味着什么?
答案 0 :(得分:127)
Eclipse是插件的运行时环境。实际上,您在Eclipse中看到的所有内容都是Eclipse上安装的插件的结果,而不是Eclipse本身。
.project
文件由核心Eclipse平台维护,其目标是从通用的,独立于插件的Eclipse视图中描述项目。这个项目名称是什么?它所涉及的工作区中的其他项目是什么?用于构建项目的构建器是什么? (请记住,“构建”的概念并不特别适用于Java项目,也适用于其他类型的项目)
.classpath
文件由Eclipse的JDT功能(功能 =插件集)维护。 JDT在项目中保存了多个这样的“元”文件(参见项目中的.settings
目录); .classpath
文件只是其中之一。具体来说,.classpath
文件包含JDT功能为了正确编译项目所需的信息:项目的源文件夹(即要编译的);输出文件夹(将编译到的位置);和classpath条目(例如工作区中的其他项目,文件系统上的任意JAR文件等)。
盲目地将这些文件从一台机器复制到另一台机器可能存在风险。例如,如果将任意JAR文件放在类路径上(即,位于工作空间之外且由绝对路径命名引用的JAR文件),则.classpath
文件将呈现为非可移植且必须为修改以便携带。可以遵循某些最佳实践来保证.classpath
文件的可移植性。
答案 1 :(得分:30)
<强> .project
强>
在工作区中创建项目时,会自动生成描述项目的项目描述文件。此文件的唯一目的是使项目自我描述,以便可以在另一个工作区中正确地重新创建已压缩或发布到服务器的项目。
<强> .classpath
强>
Classpath指定Java构建器考虑项目中的哪些Java源文件和资源文件,并指定如何在项目外部查找类型。 Java构建器将Java源文件编译到输出文件夹中,并将资源复制到其中。
答案 2 :(得分:10)
完整的引用不适用于上述文件,因为它们可以通过各种插件进行扩展。
基本上,.project文件存储项目设置,例如构建器和项目自然设置,而.classpath文件定义在运行期间使用的类路径。类路径文件包含与项目中的文件夹对应的src和目标条目; con条目用于描述某种“虚拟”条目,例如JVM库或者在eclipse插件依赖项的情况下(使用特殊的src条目以不同方式显示正常的Java项目依赖项)。
答案 3 :(得分:2)
此eclipse文档包含.project
文件中标记的详细信息:The project description file
它将.project
文件描述为:
在工作区中创建项目时,会自动生成描述项目的项目描述文件。此文件的目的是使项目自我描述,以便可以在另一个工作区中正确地重新创建已压缩或发布到服务器的项目。此文件始终称为&#34; .project&#34;