1.定义一个顶级pom (参考http://blog.youkuaiyun.com/madding/article/details/6712019),作一些配置约束
方便以后作扩展,如工程发布,源定义
2.工程中依赖的pom定义在工程的顶级pom的dependencyManagement中:
方便利用maven的默认仲裁方式来处理(最短路径)
利于版本控制
3.对于工程中公共组件的版本定义在工程的顶级pom中的dependencies中定义好,明确自己使用的版本
如spring的版本,log的版本,单元测试等基础组件
4.子工程pom只是对顶级pom中dependencyManagement的引入,版本全部不引入
5.子工程之间的依赖是树结构或多个树结构(森林),而循环图;树的根即工程的入口;尽量往平衡树靠以便工程结构的深度控制在比较合理的范围内
6.在二方坐标和公共(三方)坐标中都有定义的,选择第三方坐标;
7.仔细分析每一个引入的pom及间接依赖,避免把大量无用的间接依赖引入工程
8.对于工程中有不同环境的配置需要将抽取配置,通过pom properties设置配置项来注入