12

我们有一个使用 Eclipse 和 Maven 的多模块项目。过去我可以让它工作的唯一方法是对项目使用平面布局,其中父模块与其他模块是对等的。这适用于 m2eclipse 和 Subversion。

现在我们想迁移到 Git 和 GitHub。我想将整个项目以及所有模块公开为 GitHub 上的单个项目。问题是 EGit,Eclipse/Git 插件,想要一次管理一个项目,而不是项目组,所以如果你有一个平面布局,你就不能这样做。

正确的答案是使用标准的 Maven 分层布局并将父模块和所有模块作为一个单元进行管理。但是 Eclipse 不喜欢这样,再多的摆弄也不会让 Eclipse 接受嵌套项目。m2Eclipse 不支持层次结构:https ://issues.sonatype.org/browse/MNGECLIPSE-2291

所以你会怎么做?是否从命令行执行 Git 并放弃在 Eclipse 中查看哪些文件已更改的功能?还是放弃 Eclipse?

4

4 回答 4

12

作为单个 git 存储库的标准 Maven 多模块结构在 Eclipse Indigo 中与 M2e 以及在该环境中显示的 git 插件非常适合我。您不能要求 Eclipse 为您进行抓取,但是一旦您从命令行拉出,您就可以使用 Team/Share,说“Git!” 一切都很好。

我想我明白了来源:层次结构是工作空间内的项目的问题,而不是您导入的“现有项目”。

这是一个典型的工作流程:

  1. 使用 git svn clone 得到一棵树。它是一个股票的、分层的 mvn 多模块树
  2. 在 Eclipse 中,使用 import/maven/existing maven 项目。指向整棵树
  3. 全选
  4. 好的

它工作正常。嵌套一点也不打扰日食。我不知道bz指的是什么问题。

在我使用 m2e 之前,我使用了 maven-eclipse-plugin。它在这些情况下也有效,因为它不会生成用于<packaging>pom</packaging>聚合项目的 .project/.classpath,因此从不调用 Eclipse 来实际嵌套任何东西。

我并不孤单——请参阅 cxf.apache.org 中的开发人员设置说明,了解您可以自己尝试的开源示例。

于 2011-10-20T20:22:31.423 回答
4

您是否可能正在使用该工具的旧版本?

我有一个使用 Eclipse 3.7 (Indigo)、M2Eclipse (1.0) 和 EGit (1.0) 的 Maven 多模块项目。

在文件系统上,多模块项目有一个父目录。

在 Eclipse 中,每个模块都有单独的项目。

M2Eclipse 完美地完成了依赖管理。

顶层有一个 git 存储库(.git 目录),EGit 运行良好。

于 2011-10-21T23:22:22.150 回答
1

您可以将您的模块放在具有分层布局的 Git 中。并由 Maven 构建这些模块。如果这些模块是 Eclipse 识别的项目(无论是 java、c++ 或 php 项目),它们可以作为工作空间中的平面布局导入工作空间。

-- the root of Git working directory
  -- moudule1
    -- project1(a java project)
      -- .project(a project file recognized by eclipse JDT)
      -- pom.xml
    -- project2(a java project)
      -- .project
      -- pom.xml
  -- module2
    -- projectA(a java project)
      -- .project(a project file recognized by eclipse JDT)
      -- pom.xml
    -- projectB(a c++ project)
      -- .project(a project file recognized by CDT)
      -- pom.xml 
于 2011-10-21T03:19:35.850 回答
0

对于 Maven 项目,可以通过 Maven 导入向导(可从 Git 访问)一次实现多个导入。如果您不知道要导入什么样的项目,您可以使用新的 Easymport,通过从各种文件中推断配置,“最好”地导入项目。见https://github.com/jbosstools/jbosstools-playground#easymport-easy-and-smart-openimport-of-a-project

获得所有这些项目后,您可以使用 Nestor 插件,它会以嵌套/分层布局显示项目,更正确地映射您的 Maven 项目:https ://github.com/jbosstools/jbosstools-playground#nestor-view-嵌套项目

于 2014-11-27T18:18:15.063 回答