(五)聚合与继承

1 聚合
  1.1 简述
    使用聚合可以管理多个子模块,其目的是为了方便构建项目。
  1.2 结构
    (1)聚合模块只有一个pom文件,与子模块是并列或包含关系。
    (2)对于聚合模块,其打包方式packaging的值必须为pom,否则无法构建。
    (3)对于各个子模块,要求模块的groupId与聚合模块的groupId一致,version也一致,artifactId为子模块的名称。
2 继承
   2.1 简述
    使用继承特性可以实现一处声明,多处使用,其目的是为了消除重复配置。
   2.2 父模块结构
     同聚合模块pom的(1)(2)。
   2.3 子模块结构
    子模块在继承父模块时,除了使用parent标签包裹父模块的坐标外,还需要用relativePath指出父模块的pom文件的位置,默认父pom文件在上一层目录,仅仅是这种情况下可以省略relativePath。
    当项目构建时,Maven首先会根据relativePath检查父pom,如果找不到,再从本地仓库中根据坐标查找pom文件继承后执行构建。其中,子模块可继承父模块的主要元素包括:
     1)groupId
     2)version
     3)properties   自定义的Maven属性
     4)dependencies 项目的依赖配置
     5)build  包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等。
   2.4 依赖管理和插件管理
     在父模块中配置依赖时通过dependencyManagement统一管理,这样子模块在使用时只需要给出依赖的groupId和artifactId,版本和scope全部继承自父模块,从而实现了版本的统一管理,并且对于父模块中的依赖也可选择继承。
     插件管理的思想和方法完全同依赖管理,只是采用pluginManagement管理所有的插件。 
3 构建顺序
   在一个多模块的Maven项目中,maven按序读取pom,如果该pom没有依赖模块,那么就构建该模块,否则就先构建其依赖模块,如果该依赖还依赖其他模块,则进一步先构建依赖的依赖。在构建过程中,如果某依赖模块已经完成构建则不会再重复构建。
    
posted @ 2020-05-02 10:21  FCity  阅读(178)  评论(0编辑  收藏  举报