maven依赖传递
依赖传递:分为①jar包依赖传递 ②scope范围依赖传递
上图解析:上图是一种相对比较好的工程架构图。即:一个工程包括report-data,report-dao,report-charts,report0-web,common-lib五个模块,每个模块都有自己单独的子pom;图中srpingmvc即代表父pom。结构就是:①common-lib模块继承自springmvc父pom②data,dao,cahrts模块依赖common-lib模块 ③web模块依赖data,dao,charts模块
①jar包依赖传递(待补充)
如上图,web模块依赖dao模块,dao模块依赖common-lib模块,那么common-lib模块pom中所有的jar包,web模块也是能够使用的,这就是所谓的依赖传递。和Java中的继承关系类似,就是一层一层之间的继承
使用场景:设计pom依赖关系的时候。如果目前Spring需要由4.0升级到5.0,那么如果有设计一个很好的父pom,则只需要在父pom中修改即可。下层的具体模块只需要继承父pom即可,而不需要关注自己是不是也需要升级Spring。(此处就会用到父pom中的dependencyManagement标签,然后子pom使用则不需要提供版本号)。每个公司父pom不一样,有公司级别、部门级别的父pom,作为架构师,首先就应该设计一个好的父pom。
②scope范围依赖关系
第一列表示直接依赖的scope,第一行表示间接依赖的scope(遇到几率不大,知道就好,用到时可做深入研究)
| compile | test | provided | runtime |
compile | compile | - | - | runtime |
test | test | - | - | test |
provided | provided | - | provided | provided |
runtime | runtime | - | - | runtime |