Maven学习笔记-对maven父项目依赖管理的进一步理解

maven父项目的主要作用就是对子项目的统一管理,所以父项目的包结构很简单,主要就是为了使用其pom文件完成以下几项工作:

  • 统一管理jar包的版本
  • 统一的依赖管理
  • 聚合工程
    Maven学习笔记-对maven父项目依赖管理的进一步理解

1.统一管理jar包的版本

Maven学习笔记-对maven父项目依赖管理的进一步理解
为了对多个子项目的项目jar包进行统一版本的控制,我们会在父项目的pom中使用dependencyManagement标签将依赖的版本声明。
需要注意的是,声明在dependencyManagement标签中的依赖只是声明了,并不会真的添加到父项目的依赖中,当子项目需要添加某个已经在父项目中声明的依赖时,还是需要在子项目的POM中进行显示的声明,只是此时就不用在指定具体的版本了。
Maven学习笔记-对maven父项目依赖管理的进一步理解

这就相当于是java项目中的一个接口规范,需要使用时才需要具体实现

2.统一的依赖管理

在父项目的POM中也可以进行普通的依赖声明:
Maven学习笔记-对maven父项目依赖管理的进一步理解
这样声明的依赖会直接引入到父项目中,当子项目继承父项目时,父项目中的依赖就会根据依赖的可传递性,直接添加到子项目的依赖中,例如mysql-connector-java的依赖,我没有在子项目中声明也已经被引入了
Maven学习笔记-对maven父项目依赖管理的进一步理解
总结:

  1. 当我们确定某个依赖在所有maven项目模块的开发中都是需要引用的,那我们就可以将这部分依赖直接声明在父项目的POM中。
  2. 有些依赖只是部分项目需要,但是需要进行统一的版本控制时就使用dependencyManagement进行声明。
  3. 只有当前项目需要的依赖就直接声明在此项目的POM就好了。