Maven高级——继承与聚合——继承关系实现
将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高级——继承与聚合——继承关系实现相关推荐
- Maven精选系列--继承与聚合
转载自 Maven精选系列--继承与聚合 继承 什么是继承,我们可以定义项目的父类项目,用于继承父项目的依赖.插件.属性等信息. <parent> <groupId>com.a ...
- Maven之(九)依赖关系
在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖.就是说,你跟开发Spring的大牛们平起平坐 ...
- Maven学习总结(五)——聚合与继承
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(五)--聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1. ...
- Maven详解之聚合与继承
Maven详解之聚合与继承 说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各 ...
- Maven(3)--聚合与继承
目录 聚合 重点: 继承 注意: 聚合与继承的关系区别 : 共同点 : Maven可继承的POM 元素 依赖管理 import依赖范围 插件管理 约定由于配置 反应堆 反应堆的构建顺序 裁剪反应堆 聚 ...
- Eclipse下Maven工程多模块继承和聚合的创建
使用Maven对项目进行管理的时候,多模块的继承和聚合是必不可少的,本文简要说明一下在eclipse IDE下创建多模块工程. 1.Maven多模块的聚合 一个Maven工程下创建多个模块,然后用一个 ...
- 2.Maven创建以及依赖、继承、聚合
文章目录 1. Maven工程类型 1.1 POM工程 1.2 JAR工程 1.3 WAR工程 2. 在IDEA中创建Maven工程 3. Maven项目结构 4. POM模式-Maven工程关系 4 ...
- Maven 模块继承、聚合
2019独角兽企业重金招聘Python工程师标准>>> Maven POM(项目对象模型): 通过XML配置项目的依赖,自动完成项目构建 pom.xml 标签 modelVersio ...
- 类之间的关系(关联、继承、聚合、组合、依赖、实现)
类间关系 前言 继承(Generalization) 实现(Realization) 组合(Composition) 聚合(Aggregation) 关联(Association) 依赖(Depend ...
最新文章
- 元胞自动机(Cellular Automata)
- linux云管理,教程|云帮手部署Linux公有云管理系统
- 牛客多校10 - Identical Trees(dp+二分图最小权匹配)
- CAP原理和最终一致性(Eventually Consistency)
- DDraw笔记-创建表面
- Java 开发必须掌握的线上问题排查命令
- LeetCode_16.22兰顿蚂蚁
- 英文java简历模板下载_java英文简历模板
- 2021 Duilib最新入门教程(一)Duilib简介
- 学前教育计算机课程设置,计算机网络背景下学前教育专业课程设置分析
- C语言求三角形斜边长
- ARM与裸机开发教程
- 深藏不漏!.cc域名接连高价成交!最高突破6位数!
- BTC隔离见证(3开头)地址离线签名
- KO data-bind=“click: func“函数自动执行问题
- 陀螺财经研究院郭润华:2019年将迎来区块链真正成熟的井喷时代
- linux 内核修改rss,什么是Linux内存管理中的RSS和VSZ
- javaScript快速入门(仅需一天)
- 持久化技术——游戏玩家信息管理(基于 SQLite)
- [总结]读取应用程序/类库配置文件(比如***.dll.config)的方法小结
热门文章
- VsCode写C# 猜猜随机数0-9(限制三次机会)可循环使用
- redis储存实体类对象_redis存储对象
- VLC控件在JavaScript中视频字幕编辑
- c#读取excel两列数据并绘制xy曲线_我用Python展示Excel中常用的20个操作
- 基于STM32F407的智能门锁
- JS 判断数组中是否包含某个值
- html_后端工程师必备知识-这些你都懂了吗?
- 联科教育为全球最大的网络供应商Cisco(思科)提供技术培训!
- extmail mysql数据库 重启_部署Extmail邮件系统需注意几点
- TFS停机 文档代码暂时迁移