Git 使用Maven+的项目组织;吉特

Git 使用Maven+的项目组织;吉特,git,maven,structure,tagging,organization,Git,Maven,Structure,Tagging,Organization,我们的团队目前正在从SVN迁移到Git。我们目前使用Maven作为构建工具 目前,我们的项目通过Maven有一个构建层次结构,但在文件层次结构/存储库方面是扁平的。我的目标是在我们的存储库中更紧密地匹配Maven构建层次结构和文件结构层次结构,以使一切更容易理解 我的问题是,为了维护文件层次结构/组织,创建Git repo的适当级别是什么?例如: 大项目-(这里没有来源,只有一个pom) 后端项目(来源+pom) 客户端(这里没有来源,只有一个pom) 控制台(源代码+pom) 网站(来源

我们的团队目前正在从SVN迁移到Git。我们目前使用Maven作为构建工具

目前,我们的项目通过Maven有一个构建层次结构,但在文件层次结构/存储库方面是扁平的。我的目标是在我们的存储库中更紧密地匹配Maven构建层次结构和文件结构层次结构,以使一切更容易理解

我的问题是,为了维护文件层次结构/组织,创建Git repo的适当级别是什么?例如:

  • 大项目-(这里没有来源,只有一个pom)
    • 后端项目(来源+pom)
    • 客户端(这里没有来源,只有一个pom)
      • 控制台(源代码+pom)
      • 网站(来源+pom)
因此,“仅pom”项目将用于对实际的源项目进行分组。但吉特回购协议属于哪里?一些团队成员担心对Web项目的承诺不属于Console项目的历史记录。但是,如果Git repo处于最低级别(树的叶节点),我们将失去文件结构组织(即使构建层次结构可以在Maven中维护)


编辑:团队成员关心的不是提交历史记录,而是标记。考虑到Git回购根位于大项目,我想标记Web项目(通过标记大项目),为什么该标记应该包括控制台项目,这可能与Web标记无关?

我有一个maven项目,由60多个模块组成,我的团队也讨论了同样的问题,即git存储库根的确切位置。到目前为止,每次讨论都以将整个项目(一直到根pom)留在同一个项目中而结束。这个决定主要是基于开发人员的便利性——我们不必克隆和打开多个不同的存储库就可以在本质上相同的项目中工作。历史问题在我看来似乎是假的。谁在乎历史是否融合了?您总是可以在git中查看特定文件/模块/路径的历史记录,而不包括其他任何文件


我们考虑过的一个选项是一种叫做REPO的东西,它可以让你在REPO中嵌入REPO。如果您决定拆分层次结构,这可能是组织层次结构的一个选项。

我建议将Git中的结构保留为SVN中的结构,这意味着一个Git回购,其中包含整个项目。关键是,对于这种多模块构建,您可以毫无问题地使用Maven发布插件

你在SVN是怎么处理的?我想你有一个这样的结构。你简单地签出了这个大项目,其他所有的东西都会放在硬盘上……那么你为什么要改变这个呢?+1表示一个项目。与Subversion和其他旧工具不同,这不是瓶颈。您使用什么工具?我有一个类似的设置,在一个git存储库中有20个maven模块,包含±800000行代码。由于不断地重新编制索引,我在Eclipse中使用Egit时遇到了严重的性能问题……我们使用IntelliJ,它处理得相当好,特别是自版本12以来,但在这个问题出现后的1.5年中,我们已经开始将模块作为自己的项目分散在自己的repo中,部分是为了避免IDE性能问题。这种方法引入了自己的一系列问题,但也有其他好处。