我有一个大型应用程序(约 50 个模块),使用类似于以下的结构:
- Application
- Communication modules
- 路由器模块
- 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(使用前将#替换为@)