【问题标题】:Checking in an Eclipse project into SVN将 Eclipse 项目签入 SVN
【发布时间】:2016-02-01 23:42:42
【问题描述】:

我想将我在 Eclipse 中创建的动态 Web 项目签入到 svn 中。谁能告诉我哪些文件必须签入,哪些文件不应该签入?这个想法是能够使用新建项目向导检查项目,以便我可以再次创建动态 Web 项目。更具体地说,这里是我在项目中拥有的文件/目录--

  • 源代码
  • 网页内容
  • 构建
  • 分布
  • build.xml
  • .project
  • .classpath
  • .settings/

构建目录显然不应该签入。其他的呢? 我猜所有的 .文件也不应该被签入。有人可以验证这一点吗? 这个 dist 目录和 .settings 目录是什么?

还有 eclipse 在哪里存储服务器信息(tomcat)?我也不想签到。

编辑:

我最初检查了上述所有内容,当然除了构建目录。当我从 Eclipse 内部签出项目时,它没有提示我创建一个新项目,因为 .project 在那里,但 Eclipse 正在创建一个 JavaEE 项目或其他东西,而不是动态 Web 项目。有没有其他人遇到过这种行为?

** 编辑 2 **

找到了!原来我不应该检查以下内容--

  • .project
  • .settings/
  • .classpath

删除这 3 个后,新建项目向导将按预期工作,一切正常。

【问题讨论】:

    标签: java eclipse svn


    【解决方案1】:

    如果您签入.classpath/.project/.settings,则您的项目是特定于 Eclipse 的。与NetbeansIntelliJ 合作的开发人员呢? IMO 让您的项目独立于 IDE 且易于设置更简洁。

    我通常会选择 Maven 构建。 pom.xml 指定所有必需的依赖项,mvn eclipse:eclipse 为您生成 .classpath/.project 文件。

    .settings 目录包含本地设置(例如您要使用的 Java 版本)。 IMO 将其签入没有用。您可以通过 Maven2 pom 强制执行 Java 版本合规性。

    最后,对于您的下一个项目,我的建议是svn-ignore 在您第一次提交之前 在 SVN 中不需要的文件或目录。在 Maven2 设置中,.settings.classpath.projecttarget(Maven2 的默认输出目录)和任何其他生成的东西(日志文件、gfembed 目录等)。在您的情况下,您将忽略 builddist 而不是 target

    你可以使用RIGHT_MOUSE->Team->'Add to svn:ignore'svn-ignore 文件或目录(我使用 Subclipse 插件)。忽略指令在父目录中存储为svn-propertiesRIGHT_MOUSE->Team->Show properties 可以查看目录的属性。您还可以通过单击值字段直接在此处编辑属性。确保每个属性后面都有行尾。

    既然您已经提交然后删除了这些文件,根据我的经验,忽略将不再起作用。不知何故,我从来没有成功地忽略已签入 SVN 存储库的生成文件;他们就像僵尸一样,总是死而复生。也许通过在 SVN 存储库中物理删除他们的条目可以实现,但我从未这样做过。

    【讨论】:

    • 谢谢,这是关于 IDE 特定文件的一个好点,并且使用 svn ignore 也是一个好主意。
    • 虽然 .settings 的内容是特定于 Eclipse 的,但这并不意味着它们不需要与团队的其他成员共享。具体来说,您可能希望共享您的项目的 JDT 警告首选项。通过生成它们来分享它们真的很痛苦。
    • 好点。我有时通过从 IDE 导出这些设置并共享文件来共享这些设置。例如 Eclipse 允许导出格式和代码模板规则。另一个例子是 checkstyle 设置。所有这些设置通常都是公司范围内的政策,因此人们经常在 Confluence Wiki 上找到它们,而不是检查到每个项目中。
    • 拥有这些文件允许其他 Eclipse 开发人员使用它们,并且完全不会伤害其他 IDE 的用户 - 签入
    • 签入生成的 eclipse 工件实际上会伤害使用 eclipse 的人,而不是使用其他 IDE 的人。您本地生成的工件将与签入版本保持“战斗”(显示为更改)。作为一般经验法则,提交生成的源代码(几乎)从来都不是一个好主意。
    【解决方案2】:

    在我们的例子中,我们已经签入了您在列表中提到的所有内容,除了 .settings/。

    通过签入.classpath.project,用户可以快速签出项目并在新计算机上启动Eclipse,然后开始工作;另一种方法是手动配置项目并煞费苦心地添加所有 jar 依赖项(如果您使用 ant)。许多开源项目都这样做。

    阅读this,有一些非常好的观点值得思考。

    【讨论】:

    【解决方案3】:

    好问题...我们中的许多人都在是否要签入 IDE 相关文件方面处于两难境地。我通常会检查 .classpath 的 Eclipse 并使用 Eclipse 变量来确保团队只需要更改变量值并且它可以工作。我们还签入 .project,以便团队无需在其工作区中创建新项目。

    【讨论】:

      【解决方案4】:

      我会省略 .project、.settings/、dist 和 build。

      如果您使用变量而不是硬编码路径,则可以保留 .classpath。这很有用,因此您不必每次签出项目时都重新构建类路径。

      【讨论】:

        猜你喜欢
        • 2013-09-21
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 2018-10-26
        • 2011-10-25
        • 2012-08-08
        • 2016-10-19
        • 2016-04-18
        相关资源
        最近更新 更多