0

我正在尝试为我的项目使用 Eclipse、Subversion 和 Maven,每个人都告诉我永远不要签入以下文件:

target/
.classpath
.project
.settings

但是,如果我不签入它们并且其他一些项目从 Eclipse 中签出该项目,Eclipse 不知道它是什么类型的项目。我们做错了什么吗?

你如何工作的?

4

7 回答 7

6

Eclipse 有一个 Maven 插件;我相信它被称为m2eclipse。安装后,您可以选择 Import from Maven project 并选择pom.xml将您的项目导入到 Eclipse 的选项,即使它.project.settings存在。因此,您无需将它们提交给 svn。这带来了 IDE 中立性的优势;您团队的其他成员可以毫无顾虑地使用 Intellij IDEA 或 NetBeans。

Maven还有一个eclipse插件;你可以去哪里pom.xml,打开一个终端并输入mvn eclipse:eclipse,它会自动生成.project.settings.。但是更推荐第一个选项。

于 2013-01-22T20:38:01.233 回答
1

我对 eclipse、maven 和 git 有同样的问题,所以也许它对你有帮助:

  1. 尝试在 svn 中设置你的 repo 并检查它,但不要导入它。
  2. 您必须通过 File -> Import -> Existing Maven Project 将项目导入您的工作区。
  3. 最后一步是分享项目。右键单击 -> 团队 -> 共享 -> SVN -> 并将现有的设置为 repo。

这就是我在 Eclipse 中处理这个问题的方式。希望它足够清楚?顺便说一句,您不应该签入这些文件,因为类路径等在其他机器上可能会有所不同。

于 2013-01-22T20:41:44.427 回答
0

我签入 .classpath 和 .project 但不经常签入。您必须确保从事该项目的每个人都拥有足够接近的 eclipse 版本(包括包含的特定插件和 eclipse 功能)。有时,如果您确保几乎没有人签入这些文件,并且每个人都只是比较并在更新时从版本控制手动更新这些文件,则有时您可以使用非常不同的 eclipse 版本。

如果您不签入,每个人都必须创建一个空项目,然后将源文件(以及所有版本控制文件或文件夹)加载到项目中。如果您小心,您可以复制这两个文件,然后使用选项设置来使它们匹配。

请注意,Maven 对此有很大帮助,因为它处理了 .classpath 文件的大部分内容。

于 2013-01-22T20:41:49.523 回答
0

不签入这些文件的主要原因是 IDE 很可能会更改这些文件以适应您的本地开发环境。如果每个人都一直在提交他们的版本,这可能会导致冲突并因此“破坏”项目。

就是说,eclipse 应该通过 m2eclipse 插件(我相信这些天默认情况下可能会嵌入)具有不错的 maven 集成。

Maven 背后的部分想法正是如此——可重现的跨平台构建、跨 IDE 等——因此构建项目不需要像这样的 IDE 特定文件。使用 m2eclipse 插件导入项目应该可以很好地解决问题。

于 2013-01-22T20:42:10.883 回答
0

如果您的意思是其他成员签出项目并且它对他们不起作用,他们可以在不使用 eclipse 的情况下单独签出 maven 项目,然后使用m2eclipse插件将其作为现有 maven 项目导入 eclipse。这很干净,没有任何问题(至少对我来说)。

于 2013-01-22T20:43:01.127 回答
0

如果您团队中的每个人都在使用 Eclipse,并且同意该项目永远不会使用其他任何东西,那么您也可以检查这些文件。但是如果有人使用 IntelliJ、Netbeans 的其他工具或拥有他的Eclipse 非常定制。

于 2013-01-22T20:45:04.763 回答
0

这取决于。

Maven 文档明确表示“不要签入 .project/.classpath/.settings/,因为它们可以从 pom.xml 重新生成”。句子的后半部分(“它们可以再生”)不正确,因此句子的第一部分(建议)可能会也可能不会,这取决于情况。并非 Eclipse 配置的每一点都可以从 pom.xml 重新生成,因此我的观点是,该决定是基于您从中获得多少收益与与特定 IDE 绑定之间的权衡。

所以这取决于。

对于“社区项目”,通常每个开发人员都会使用不同的 IDE 和不同版本的 IDE,我建议不要签入这些文件。否则,不使用您的 IDE 和您的 IDE 版本的开发人员会很痛苦。

对于大型“企业项目”,IDE 和 IDE 版本不是由开发人员自由选择的,而是由项目管理人员严格规定的。诸如编译器(1)、代码格式、验证规则、警告和错误配置、自定义内部插件配置和许多其他内容也是如此。其中许多东西不能在 pom.xml 中设置(也不应该设置,因为 Maven 不是 IDE,而是一个构建工具)。所以在这种情况下,我建议检查这些文件并责怪遵守规定的开发人员,因为他试图不听从指令。

(注意,本案中我故意使用了“口授”和“责备”等词语,因为企业项目的项目管理人员不仅有“口授”和“责备”的权利,而且还有义务)

另一方面,对于一个人的项目,你不必担心你的同事,所以去检查他们。

但关键是你必须知道你的情况和后果,然后自己决定。

(1) 不,“maven.compiler.source”不是要使用的编译器。

于 2014-10-26T07:20:30.217 回答