我们有一个使用Eclipse和Maven的多模块项目。我可以让它在过去工作的唯一方法是为项目使用平面布局,其中父模块是其他模块的对等。这适用于m2eclipse和Subversion。
现在我们想转移到Git和GitHub。我想将整个项目以及所有模块作为GitHub上的单个项目公开。问题是EGit(Eclipse / Git插件)想要一次管理一个项目,而不是项目组,所以如果你有一个平面布局,你就不能这样做。
正确的答案是使用标准的Maven分层布局,并将父模块和所有模块作为一个单元进行管理。但是Eclipse不喜欢这样,并且没有多少人会让Eclipse接受嵌套项目。 m2Eclipse不支持层次结构:https://issues.sonatype.org/browse/MNGECLIPSE-2291
那你做什么?从命令行执行Git并放弃查看Eclipse中哪些文件已更改的功能?还是放弃了Eclipse?
答案 0 :(得分:12)
作为单个git repo的标准Maven多模块结构在Eclipse Indigo中使用M2e和在该环境中显示的git插件非常适合我。你不能要求Eclipse为你提取,但是一旦你从命令行撤出,你就使用Team / Share,比如说'Git!'一切都很好。
我想我知道源代码是什么:层次结构是工作区内项目的问题,而不是您导入的“现有项目”。
这是一个典型的工作流程:
它工作正常。嵌套不会打扰日食。我不知道bz指的是什么问题。
在我使用m2e之前,我使用了maven-eclipse-plugin。它也适用于这些情况,因为它不会为<packaging>pom</packaging>
聚合项目生成.project / .classpath,因此Eclipse永远不会被要求实际嵌套任何东西。
我并不孤单 - 请参阅开发人员设置说明cxf.apache.org以获取您可以自己尝试的开源示例。
答案 1 :(得分:4)
您是否可能使用旧版本的工具?
我有一个Maven多模块项目,我使用Eclipse 3.7(Indigo),M2Eclipse(1.0)和EGit(1.0)。
在文件系统上,多模块项目有一个父目录。
在Eclipse中,我为每个模块都有单独的项目。
M2Eclipse完美地完成了依赖管理。
顶层有单个git存储库(.git目录),EGit工作正常。
答案 2 :(得分: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
答案 3 :(得分:0)
对于Maven项目,可以通过Maven导入向导(可从Git访问)一次实现多个导入。 如果您不知道自己要导入的项目类型,可以使用新的Easymport,通过从各种文件中推断出配置,导入项目&#34;最好的#34;见https://github.com/jbosstools/jbosstools-playground#easymport-easy-and-smart-openimport-of-a-project
获得所有这些项目后,您可以使用Nestor插件,该插件将以嵌套/分层布局显示项目,更准确地映射您的Maven项目:https://github.com/jbosstools/jbosstools-playground#nestor-view-nested-projects