依赖传递
- 在工程的依赖树上,深度越浅,越被优先选择。
- 若两个依赖包处于依赖树上的同一层,则谁在前抉择谁
- 总之,防止传递依赖时引起版本问题呈现的最佳实际。个别状况下,如果工程间接依赖到某一框架的多个模块,最好全副申明这些依赖
模块聚合和继承
Maven聚合
当模块十分多的时候,想要一次构建多个我的项目,而不是到多个模块的目录下别离执行命令。Maven的聚合个性就是为该需要服务的。
<parent> <groupId>com.ts.mall</groupId> <artifactId>ts-mall</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../mall-dependencies/pom.xml</relativePath></parent><artifactId>mall-dependencies</artifactId><!-- 聚合模块必须为pom,否则无奈构建 --><packaging>pom</packaging><!-- modules是实现聚合的最外围配置,指定聚合的模块目录 --><modules> <module>../modules1</module> <module>../modules2</module> <module>../modules3</module></modules>
继承
- 子模块的grouopId和version,都会从父模块依赖下来。
- 创立了一个模块不须要依赖父类的jar包,须要用Maven的依赖治理dependencyManagement来解决这个问题
总结
- 聚合是为了不便疾速构建我的项目
- 继承是为了打消反复配置,在简化pom的同时还能促成各个模块配置的一致性。
- 共同点是两者的packaging都是pom,聚合模块与继承关系中的父模块除了pom之外都没有理论内容。
参考资料
Maven实战(九)---模块聚合和继承