将Maven拆分成多个项目之后又会引发新的问题,继承与聚合就是用来解决这些问题。

这里的继承就像java中类和类之间的继承一样,工程之间也是可以实现继承的。

继承解决的问题

在之前拆分的三个模块中每个都配置了一个lombok的依赖,每一个maven模块里面都要重新实现一次,配置较繁琐.

解决方案

创建一个tlias-parent父工程,将那些子工程当中共有的以来都定义在子工程当中。然后子工程直接继承父工程的配置信息一般指的都是依赖.

springboot项目都会有一个<parent>标签继承自同一个父工程。

在springboot中会有如下的一个父工程坐标。

Maven当中常见的三种打包方式

在Maven中,一个工程只能继承自一个父工程。

继承关系实现

所以原项目的springboot父工程可以由tlias-parent来继承,然后原项目再来继承tlis-parent。

这样就通过多重继承解决该问题。 ​​​​​​​​​​​​​​

第一步:新建一个父工程

按照之前新建项目时的方式新建一个与其他级的模块同级别的项目。名为tlias-parent

然后pom.xml文件里面新加上如下依赖,一个是指定打包方式为pom,一个是springboot的父工程。    <relativePath/>使用单闭合的话表示让它在本地仓库查找父工程。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><!--<version>3.0.5</version>--><version>2.7.5</version><relativePath/> <!-- lookup parent from repository --></parent><packaging>pom</packaging>

配置原项目的父工程坐标

在tlias-parent的pom.xml文件中就有这个父工程的坐标。

    <parent><groupId>com.itheima</groupId><artifactId>tlias-parent</artifactId><version>1.0-SNAPSHOT</version><relativePath>../tlias-parent/pom.xml</relativePath> <!-- lookup parent from repository --></parent>

这里需要知道父工程的pom文件的位置,这里直接使用相对位置。

在POJO模块和utlis模块的继承关系的配置是一样的,所以可以直接把上面这个坐标放到另两个模块的pom.xml文件中。

在父工程配置各个子工程的共有依赖

直接把子工程POJO的整个依赖项都移植到父工程中去,就可以看见右边的maven中依赖项消失又出现。

    <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency></dependencies>

在tlias-utils中会出现一个警告表示依赖重复

然后把三个子工程的lombok依赖都删除即可。

小结

 右边才是项目时真正用到的父子工程结构。

Maven高级——继承与聚合——继承关系实现相关推荐

  1. Maven精选系列--继承与聚合

    转载自 Maven精选系列--继承与聚合 继承 什么是继承,我们可以定义项目的父类项目,用于继承父项目的依赖.插件.属性等信息. <parent> <groupId>com.a ...

  2. Maven之(九)依赖关系

    在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖.就是说,你跟开发Spring的大牛们平起平坐 ...

  3. Maven学习总结(五)——聚合与继承

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(五)--聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1. ...

  4. Maven详解之聚合与继承

    Maven详解之聚合与继承 说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各 ...

  5. Maven(3)--聚合与继承

    目录 聚合 重点: 继承 注意: 聚合与继承的关系区别 : 共同点 : Maven可继承的POM 元素 依赖管理 import依赖范围 插件管理 约定由于配置 反应堆 反应堆的构建顺序 裁剪反应堆 聚 ...

  6. Eclipse下Maven工程多模块继承和聚合的创建

    使用Maven对项目进行管理的时候,多模块的继承和聚合是必不可少的,本文简要说明一下在eclipse IDE下创建多模块工程. 1.Maven多模块的聚合 一个Maven工程下创建多个模块,然后用一个 ...

  7. 2.Maven创建以及依赖、继承、聚合

    文章目录 1. Maven工程类型 1.1 POM工程 1.2 JAR工程 1.3 WAR工程 2. 在IDEA中创建Maven工程 3. Maven项目结构 4. POM模式-Maven工程关系 4 ...

  8. Maven 模块继承、聚合

    2019独角兽企业重金招聘Python工程师标准>>> Maven POM(项目对象模型): 通过XML配置项目的依赖,自动完成项目构建 pom.xml 标签 modelVersio ...

  9. 类之间的关系(关联、继承、聚合、组合、依赖、实现)

    类间关系 前言 继承(Generalization) 实现(Realization) 组合(Composition) 聚合(Aggregation) 关联(Association) 依赖(Depend ...

最新文章

  1. 元胞自动机(Cellular Automata)
  2. linux云管理,教程|云帮手部署Linux公有云管理系统
  3. 牛客多校10 - Identical Trees(dp+二分图最小权匹配)
  4. CAP原理和最终一致性(Eventually Consistency)
  5. DDraw笔记-创建表面
  6. Java 开发必须掌握的线上问题排查命令
  7. LeetCode_16.22兰顿蚂蚁
  8. 英文java简历模板下载_java英文简历模板
  9. 2021 Duilib最新入门教程(一)Duilib简介
  10. 学前教育计算机课程设置,计算机网络背景下学前教育专业课程设置分析
  11. C语言求三角形斜边长
  12. ARM与裸机开发教程
  13. 深藏不漏!.cc域名接连高价成交!最高突破6位数!
  14. BTC隔离见证(3开头)地址离线签名
  15. KO data-bind=“click: func“函数自动执行问题
  16. 陀螺财经研究院郭润华:2019年将迎来区块链真正成熟的井喷时代
  17. linux 内核修改rss,什么是Linux内存管理中的RSS和VSZ
  18. javaScript快速入门(仅需一天)
  19. 持久化技术——游戏玩家信息管理(基于 SQLite)
  20. [总结]读取应用程序/类库配置文件(比如***.dll.config)的方法小结

热门文章

  1. VsCode写C# 猜猜随机数0-9(限制三次机会)可循环使用
  2. redis储存实体类对象_redis存储对象
  3. VLC控件在JavaScript中视频字幕编辑
  4. c#读取excel两列数据并绘制xy曲线_我用Python展示Excel中常用的20个操作
  5. 基于STM32F407的智能门锁
  6. JS 判断数组中是否包含某个值
  7. html_后端工程师必备知识-这些你都懂了吗?
  8. 联科教育为全球最大的网络供应商Cisco(思科)提供技术培训!
  9. extmail mysql数据库 重启_部署Extmail邮件系统需注意几点
  10. TFS停机 文档代码暂时迁移