Java 在推送到存储库时忽略.classpath和.project(或.iml)是一种好的做法吗?

Java 在推送到存储库时忽略.classpath和.project(或.iml)是一种好的做法吗?,java,eclipse,git,intellij-idea,gitignore,Java,Eclipse,Git,Intellij Idea,Gitignore,我正在和一组其他学生一起完成本学期的最后一个Java项目,我们希望使用git存储库来结合我们的努力 由于没有使用哪种IDE的标准,我们的存储库中有.iml以及.project和.classpath。在我看来,当克隆到一台新机器上时,这增加了项目的重要性,但我确信一定会有某种冲突等待发生 这里的最佳实践是什么?忽略.iml和.classpath/.project或提交它们?我建议忽略.iml和.path设置以及与代码编辑器或编译器相关的所有内容。设置尽可能模糊,以便人们可以在任意IDE中以任意格式

我正在和一组其他学生一起完成本学期的最后一个Java项目,我们希望使用git存储库来结合我们的努力

由于没有使用哪种IDE的标准,我们的存储库中有.iml以及.project和.classpath。在我看来,当克隆到一台新机器上时,这增加了项目的重要性,但我确信一定会有某种冲突等待发生


这里的最佳实践是什么?忽略.iml和.classpath/.project或提交它们?

我建议忽略.iml和.path设置以及与代码编辑器或编译器相关的所有内容。设置尽可能模糊,以便人们可以在任意IDE中以任意格式编辑它

例如,对于eclipse.settings,如果路径不同,则会出现意外的副作用、找不到项目的消息等。。因为eclipse倾向于硬编码项目的路径。所以/users/john/desktop/project/不会为/users/fred/desktop/project运行

而且建立一个IDE来使用它也不需要太多的努力。 在项目中包括最常用编辑器的快速设置手册,作为快速参考表

如果你使用gradle,你可以看看minecraft forge是如何做到这一点的。
它已经为Eclipse和Apple设置了脚本,所以所有适当的库都被加载,运行库被配置为相关IDE的

,尽管我不认为这是一个问题,但无论如何我都会回答:我总是忽略它,因为我无意为以后可能在同一代码上工作的其他人决定他们可以/应该使用什么IDE。它与项目无关,而是与您选择使用的IDE有关。如果您添加了它,您将设置要使用的IDE,甚至可能设置更多的“本地配置”,比如在项目最初应该在哪个文件夹中,您通常希望忽略特定于环境配置的任何本地配置。在回购协议中推送这些是没有意义的,因为所有人在他们的机器上都有不同的环境和设置。请看一下您描述的文件——它们包含仅特定于您的环境的类路径等。