gpt4 book ai didi

java - 大型 Maven 项目的存储库布局

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:38 26 4
gpt4 key购买 nike

我有一个大型应用程序(约 50 个模块)使用类似于以下的结构:

  • 申请
    • 通信模块
      • 色彩交流模块
      • SSN通信模块
      • 等通讯模块
    • 路由器模块
    • 服务模块
      • 投票服务模块
        • 用于投票的 Web 界面子模块
        • 用于投票的投票收集器子模块
        • 等投票
      • 问答服务模块
      • 等模块

我想将应用程序导入 Maven 和 Subversion。经过一些研究,我发现存在两种实用的方法。

一个和前一个一样使用树结构。这种结构的缺点是你需要大量的调整/修改才能使多模块报告与 Maven 一起工作。另一个缺点是,在 Subversion 中,标准的主干/标签/分支方法给存储库增加了更多的复杂性。

另一种方法使用平面结构,其中只有一个父项目,所有模块、子模块和部分子模块都是父项目的直接子项目。这种方法适用于报告,并且在 Subversion 中更容易,但我觉得这样会丢失一些结构。

从长远来看,您会选择哪种方式,为什么?

最佳答案

我们有一个大型应用程序(160 多个 OSGi bundle ,其中每个 bundle 都是一个 Maven 模块),我们吸取并继续学习的教训是扁平化更好。在你的层次结构中编码语义的问题是你失去了灵 active 。今天 100% 说“通信”的模块明天可能部分是“服务”,然后您将需要在存储库中四处移动东西,这会破坏各种脚本、文档、引用等。

所以我会推荐一个平面结构并在另一个地方编码语义(例如 IDE 工作区或文档)。

我已经详细回答了一个关于版本控制布局的问题 with examples at another question ,它可能与您的情况有关。

关于java - 大型 Maven 项目的存储库布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com