• Maven中的继承与聚合


    一,继承

    • 前面我们将项目拆分成各个小模块,但是每个小模块中有很多相同的依赖
    • 于是我们创建一个父工程将模块中相同的依赖定义在父工程中,然后子工程继承父工程
    • Maven作用:简化依赖配置,统一依赖管理,可以实现多重继承像Java一样
    • 实现:

    1,继承的实现

    一>父工程

    创建父工程,设置打包方式为pom(

    设置坐标信息

    让父工程继承

    1. <!-- 父工程-->
    2. <parent>
    3. <groupId>org.springframework.boot</groupId>
    4. <artifactId>spring-boot-starter-parent</artifactId>
    5. <version>2.7.5</version>
    6. <relativePath/> <!-- lookup parent from repository ///从本地仓库查找父工程-->
    7. </parent>

    设置打包方式

    1. <groupId>com.itheimagroupId>
    2. <artifactId>tlias-parentartifactId>
    3. <version>1.0-SNAPSHOTversion>
    4. <packaging>pompackaging>

    父工程删掉src----因为我们只需要设置依赖不需要编写任何代码

    三> 子工程

    在子工程中的pom文件中继承父工程,父工程的坐标

    然后再子工程pom文件中--是父工程的相对路径

    四>再父工程pom文件中引入子工程中共有的依赖,如果父子工程都引入了相同的依赖以子工程的为准

    2,继承版本的锁定 

    一,在maven中,可以在父工程的pom文件中通过 来统一管理依赖版本。

    1. <dependencyManagement>
    2. <dependencies>
    3. <dependency>
    4. <groupId>io.jsonwebtokengroupId>
    5. <artifactId>jjwtartifactId>
    6. <version>0.9.1version>
    7. dependency>
    8. dependencies>
    9. dependencyManagement>

    二,然后在子工程中的引入依赖就可以,但是无序设置版本号

    子工程依赖的版本是由父工程中来管理的,如果想要修改只需要在父工程中修改就可以

    1. <dependencies>
    2. <dependency>
    3. <groupId>io.jsonwebtokengroupId>
    4. <artifactId>jjwtartifactId>
    5. dependency>
    6. dependencies>

    三,在父工程中集中管理

    1,自定义属性将依赖的版本统一放入properties标签中进行统一管理

    1. <properties>
    2. <lombok.version>1.18.24lombok.version>
    3. properties>

    2,在pom文件中${lombok.version}引入版本号

    1. <dependency>
    2. <groupId>org.projectlombokgroupId>
    3. <artifactId>lombokartifactId>
    4. <version>${lombok.version}version>
    5. dependency>

    • 是直接依赖,在父工程配置了依赖,子工程会直接继承下来。

    • 是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)

    二,聚合 

    • 聚合:将多个模块组织成一个整体,同时进行项目的构建。

    • 聚合工程:一个不具有业务功能的“空”工程(有且仅有一个pom文件) 【PS:一般来说,继承关系中的父工程与聚合关系中的聚合工程是同一个】

    • 作用:快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)

    1,实现聚合()

    一,在 父工程中的pom文件中 写入子工程的相对路径

    1. <modules>
    2. <module>../tlias-pojomodule>
    3. <module>../tlias-utilsmodule>
    4. <module>../tlias-web-managementmodule>
    5. modules>

    三,继承与聚合

     

    • 作用

      • 聚合用于快速构建项目

      • 继承用于简化依赖配置、统一管理依赖

    • 相同点:

      • 聚合与继承的pom.xml文件打包方式均为pom,通常将两种关系制作到同一个pom文件中

      • 聚合与继承均属于设计型模块,并无实际的模块内容

    • 不同点:

      • 聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些

      • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

  • 相关阅读:
    别再说你不知道分布式事务了
    4 基于智能算法的路径规划 —— 遗传算法
    考研408深度分析+全年规划
    浅谈基于物联网的医院消防安全管理
    2022年8月22日上午七点CKA考试界面改动exe软件答题
    (十七)admin-boot项目之国际化支持
    内存 100%排查及常见案例
    达梦数据库执行安装提示./DMInstall.bin: Permission denied处理方法
    Python之哈希表-封装和解构
    Github最新霸榜,Alibaba架构师手写的分布式系统核心原理手册
  • 原文地址:https://blog.csdn.net/qq_57667629/article/details/134247677