6

我们有一个相当复杂的多模块 Maven 项目。有 Flex 模块、GWT 模块、Java 模块和许多 WAR 模块。为了简化将这些项目导入 Eclipse 的过程,历史上我们已经在源代码树中包含了所有相关的 Eclipse 项目文件。

然而,这在过去一直是问题的根源,因为有时这些文件被意外修改并签入......从而给其他开发人员带来了问题。随着 M2E 的出现及其对配置器的新支持以帮助在导入时设置 Eclipse 项目,我们正在重新考虑这一策略。

一般来说,项目是否在 Subversion/Git/etc 中包含这些 Eclipse 文件?

4

4 回答 4

3

我个人不建议将您的项目配置文件包含在您的 SCM 中。.project 文件包含相对或绝对路径,或 URI,它可以很容易地从一个用户到另一个用户。.project 文件的规范可以在这里找到。

于 2011-12-07T14:53:42.107 回答
3

顶级答案:这完全是品味问题:-)

就个人而言,对于“内部”项目(您可以控制其他开发人员的环境),我确实包含了 Eclipse 文件,但需要注意的是,您必须确保每个人都在其配置中使用相对路径。(每隔几个月我们就会有一次构建中断,因为库路径是硬编码的。修复需要几秒钟,但很烦人。)我通常也会大量使用诸如 Eclipse 代码格式和编译器警告之类的东西让生活更轻松的设置(例如,没有巨大的 Subversion 签入,因为某人的编辑器在格式选项卡上发生了争执)。

作为奖励,当您引入新的开发人员时,Eclipse Subversion 签出系统将在检测到您的主干/分支中的 .project 文件时自动配置项目。如果您使用 Eclipse 来管理您的构建(相对于 Ant 或 Make),这是双赢的。

如果您在一个更多样化的团队中(例如:不是同质的(原文如此?)使用 Eclipse),那么在实践中它们并不是“太多”的麻烦。我有一个正在处理的“协作”项目,其中有一个文件夹,里面装满了 MicroSoft Visual Studio 控制文件和一个 .project 文件,它们必须保持同步,但至少“只有两个”集这些文件要同步。在 Subversion 中如果没有它们,每个开发人员都会有一个……</p>

我也听说过使用“虚拟项目”来保存项目文件。例如

svn://someplace.nn/projects/MyProject/trunk —&gt; source
svn://someplace.nn/projects/MyProject.control/trunk —&gt; project control files

我见过的唯一地方是在一个项目中,它有一个大型 GPL 分支和一个小型非 GPL 本地专有插件存储库…… GPL 分支没有 .project 文件,因为大多数“网络合作者”没有使用 Eclipse,项目文件位于内部(私有)Subversion 服务器上,第三个项目包含专有插件代码。(第四个是艺术,第五个是音乐……)

于 2011-12-07T15:13:50.350 回答
3

我遇到的几乎所有(工作)项目都将 .project 文件存储在 SCM 中。主要是因为构建器等存储在文件中。所以所有的开发者在 Eclipse 中都有一个一致的配置。

想象一下,除了一位坚持在他的文件中放置标签的开发人员之外,你们都在使用 Checkstyle :-)。

它不仅适用于 .project,还适用于 .classpath、.checkstyle 以及 .settings 中的所有内容。

您唯一需要注意的是,您在项目中引用的所有内容都有相对于项目的路径,例如您的 checkstyle 配置。这意味着您使用的所有内容都可能也在 SCM 中。但这是一个优势,因为这都是您流程的一部分,对吗?

由于使用的 IDE 的多样性,上述内容不一定适用于 FOSS 项目。

于 2011-12-07T15:35:29.160 回答
2

您可以考虑将 maven-eclipse 插件添加到您的 pom.xml 中。因此,开发人员可以查看源代码,并在本地构建他们的 eclipse 项目,并导入到工作区。

此外,如果您有常见的 eclipse(或 eclipse 插件)相关配置文件,您也可以在 maven-eclipse-plugin 中定义它们。例如 checkstyle.xml、codeTemplate.xml、codeFormatter.xml.... 将这些文件保存在 scm 中可能是个好主意。

于 2011-12-07T15:14:09.940 回答