写在前面
Maven是我们在项目中常用的项目管理工具了,被用于构建和管理各种项目,今天我们的问题呢,就是Maven中的一个关键知识点的解释,那就是传递性。
下面就一起来学习一下吧。
正文
Maven在引入相应的jar包依赖时,由于其它依赖中已然有了某个或者是某些jar包的依赖了,maven会自动将其的依赖关系导入到本依赖模块中。
如,A模块中存在对springboot-web的依赖关系,
这个时候,当B模块中引入A模块的依赖时,springboot-web的依赖将自动传递到B模块中。
此时,B模块中不用再配置springboot-web的依赖了,会根据传递过来的依赖自动导入相应的jar包进去。
这就是maven的传递性,但是由于每个依赖模块都有自己的依赖关系,这个时候就会存在冲突,这里maven是利用了路径最短优先原则,如两者的路径长度相同的情况下,则会根据依赖模块的引入顺序决定使用哪个依赖模块下的依赖jar包。
这里也可以使用exclusions标签进行对部分依赖jar包的手动剔除,以避免依赖冲突导致项目启动或者开发过程中的部分问题。
总结
Maven的传递性给开发者节省了很多的时间,只要能有效的处理依赖冲突的问题就可以了。