大型 Maven 项目的存储库布局

2024-02-28

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

  • Application
    • Communication modules
      • 彩色通讯模块
      • SSN通讯模块
      • 通讯模块等
    • 路由器模块
    • Service modules
      • Voting service module
        • 用于投票的 Web 界面子模块
        • 用于投票的投票收集子模块
        • 等进行投票
      • 测验服务模块
      • 等模块

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

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

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

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


我们有一个较大的应用程序(160 多个 OSGi 包,其中每个包都是一个 Maven 模块),我们学到并继续学习的教训是,扁平化更好。在层次结构中编码语义的问题是失去灵活性。今天 100% 说“通信”的模块明天可能部分是“服务”,然后您需要在存储库中移动内容,这将破坏各种脚本、文档、参考资料等。

因此,我建议采用扁平结构,并在另一个地方(例如 IDE 工作区或文档)对语义进行编码。

我已经详细回答了有关版本控制布局的问题在另一个问题上举例 https://stackoverflow.com/questions/16829/structure-of-projects-in-version-control#16915,这可能与您的情况有关。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大型 Maven 项目的存储库布局 的相关文章

随机推荐