maven学习整理
1、dependencies和dependencyManagement的区别
(参考:https://blog.csdn.net/diu_brother/article/details/79579674)
dependencyManagement:只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本
dependencies:相对于dependencyManagement,所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承
2、dependency中type=pom的意义
(参考:https://blog.csdn.net/yao123long/article/details/49925659)
type默认是jar。
当jar很多时,可以将多个jar打在一个pom中,这样在引入的时候只需要添加一个type=pom的依赖,就可以引入依赖的所有包。
需要注意:当父pom中引入的是pom,子pom中继承时需要主动声明type=pom。
3、dependency中scope=import的意义
(参考:https://blog.csdn.net/mn960mn/article/details/50894022、https://www.cnblogs.com/xuzimian/p/10235164.html、https://blog.csdn.net/qq_37372909/article/details/79441916)
为了解决maven的单继承问题。
仅出现在dependencyManagement中。
使用时通常需要配合type=pom同时使用。
4、maven继承的好处
1)统一管理依赖的版本