项目组织使用Maven + Git

时间:2011-08-16 20:31:38

标签: git maven structure tagging organization

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

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

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

  
      
  • 大项目 - (这里没有来源,只是一个pom)   
        
    • 后端项目(来源+ pom)
    •   
    • 客户(这里没有来源,只是一个pom)   
          
      • 控制台(来源+ pom)
      •   
      • 网络(来源+ pom)
      •   
    •   
  •   

因此,“仅限pom”项目将用于对实际源项目进行分组。但是Git回购属于哪里?一些团队成员担心 Web 项目的提交不属于控制台项目的历史记录。但是如果Git repos处于最低级别(树的叶节点),我们将丢失文件结构组织(即使可以在Maven中维护构建层次结构)。

编辑:团队成员的关注程度与提交历史记录的关联程度不如使用标记。鉴于Git repo root位于 Big Project ,我想标记 Web 项目(通过标记 Big Project ),为什么该标记是否应包含控制台项目,该项目可能与 Web 标记无关?

2 个答案:

答案 0 :(得分:5)

我有一个包含60多个模块的maven项目,我的团队已经讨论了git存储库根本应该在哪里的确切问题。到目前为止,每个讨论都已结束,将整个项目一直留在同一个项目的根pom中。该决定主要基于开发人员的便利性 - 我们不必克隆和打开多个不同的存储库,以便在基本相同的项目中工作。历史问题对我来说似乎是假的。谁在乎历史是否融合?您总是可以在git中查看特定文件的/模块/路径的历史记录,不包括任何其他文件。

我们考虑过的一个选项叫做git submodules,可让您在回购中嵌入回购。如果您决定将其拆分,这可以是组织层次结构的选项。

答案 1 :(得分:0)

我建议将结构保留在Git中与SVN相同,这意味着单个Git repos包含整个项目。关键是你可以使用Maven发布插件,对于这种多模块构建没有任何问题。