大型 Maven 项目的存储库布局
我有一个大型应用程序(约50个模块),使用类似于以下内容的结构:
- 应用
- 通信模块
- 色彩通讯模块
- SSN 通信模块
- 等通讯模块
- 路由器模块
- 服务模块
- 投票服务模块
- 用于投票的 Web 界面子模块
- 用于投票的投票收集器子模块
- 等投票
- 测验服务模块
- 等模块
- 投票服务模块
- 通信模块
我想将应用程序导入 Maven 和 Subversion。经过一些研究,我发现有两种实用的方法。
一种是使用树结构,就像前一个一样。这种结构的缺点是,你需要大量的调整/黑客才能让多模块报告与Maven很好地配合使用。另一个缺点是,在 Subversion 中,标准的 trunk/tags/branch 方法给存储库增加了更多的复杂性。
另一种方法使用平面结构,其中只有一个父项目,并且所有模块、子模块和子模块部件都是父项目的直接子项目。这种方法适用于报告,在Subversion中更容易,但是我觉得我以这种方式失去了一些结构。
从长远来看,你会选择哪种方式,为什么?