我有一个大型应用程序(~50个模块),采用类似以下结构:
- 应用程序
- 通信模块
- 颜色通信模块
- SSN通信模块
- 其他通信模块等
- 路由器模块
- 服务模块
- 投票服务模块
- 投票的Web界面子模块
- 投票收集器子模块
- 其他投票模块等
- 测验服务模块
- 其他模块等
- 投票服务模块
- 通信模块
我想将应用程序导入到Maven和Subversion。经过一些研究,我发现存在两种实用的方法。
其中一种是使用与先前相同的树形结构。这种结构的缺点是,你需要进行大量调整/修改才能使多模块报告在Maven中正常工作。 另一个缺点是,在Subversion中,标准的主干/标签/分支方法会为存储库增加更多复杂性。
另一种方法使用平面结构,其中只有一个父项目,而所有模块,子模块和子模块部分都是父项目的直接子级。该方法适用于报告,并且在Subversion中更容易,但我感觉这样会失去一些结构。
您会选择哪种方式并为什么?