书接上回maven学习笔记(二) ,这回聊聊dependencies与dependencyManagement的区别与联系。
当的项目中maven依赖过多时,为了更好的做版本的管理,引入了父子项目的概念。项目中涉及到了dependencies与dependencyManagement的使用。
-
父pom中引入的坐标被dependencies管理时,则子模板可继承直接使用
-
父pom中引入的坐标被dependencyManagement管理时,则子项目不会继承,需要在子pom中再次进行显式的声明引用
举个例子:
当父pom中lombok坐标用dependencyManagement管理时,本地仓库是不进行download的,子模块中自然无法使用lombok
当去掉dependencyManagement后
可以看到自动download了lombok组件,同理子模块中可以使用lombok。
当用dependencyManagement管理父pom中的模块时,如果子模块还想引用组件,则需要显式的子模块中进行声明,
此时无需声明具体版本号,版本号由父pom统一管理。
下面引用《maven实战》中作者的一段话。