Maven中的继承与聚合
最佳答案 问答题库648位专家为你答疑解惑
一,继承
- 前面我们将项目拆分成各个小模块,但是每个小模块中有很多相同的依赖
- 于是我们创建一个父工程将模块中相同的依赖定义在父工程中,然后子工程继承父工程
- Maven作用:简化依赖配置,统一依赖管理,可以实现多重继承像Java一样
- 实现:<parent></parent>
1,继承的实现
一>父工程
创建父工程,设置打包方式为pom(<packaging>)
设置坐标信息
让父工程继承
<!-- 父工程--> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.5</version><relativePath/> <!-- lookup parent from repository ///从本地仓库查找父工程--> </parent>
设置打包方式
<!----><groupId>com.itheima</groupId><artifactId>tlias-parent</artifactId><version>1.0-SNAPSHOT</version> <!-- 设置打包方式--><packaging>pom</packaging>
父工程删掉src----因为我们只需要设置依赖不需要编写任何代码
三> 子工程
在子工程中的pom文件中继承父工程,父工程的坐标
然后再子工程pom文件中--<relativePath>是父工程的相对路径
四>再父工程pom文件中引入子工程中共有的依赖,如果父子工程都引入了相同的依赖以子工程的为准
2,继承版本的锁定
一,在maven中,可以在父工程的pom文件中通过
<dependencyManagement>
来统一管理依赖版本。<!--统一管理依赖版本--> <dependencyManagement><dependencies><!--JWT令牌--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency></dependencies> </dependencyManagement>
二,然后在子工程中的<dependencies>引入依赖就可以,但是无序设置版本号
子工程依赖的版本是由父工程中
<dependencyManagement>
来管理的,如果想要修改只需要在父工程中<dependencyManagement>修改就可以
<dependencies><!--JWT令牌--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId></dependency> </dependencies>
三,在父工程中集中管理
1,自定义属性将依赖的版本统一放入properties标签中进行统一管理
<properties><lombok.version>1.18.24</lombok.version> </properties>
2,在pom文件中<version>${lombok.version}</version>引入版本号
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version> </dependency>
<dependencies>
是直接依赖,在父工程配置了依赖,子工程会直接继承下来。
<dependencyManagement>
是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)
二,聚合
聚合:将多个模块组织成一个整体,同时进行项目的构建。
聚合工程:一个不具有业务功能的“空”工程(有且仅有一个pom文件) 【PS:一般来说,继承关系中的父工程与聚合关系中的聚合工程是同一个】
作用:快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)
1,实现聚合()
一,在 父工程中的pom文件中 写入子工程的相对路径
<!--聚合其他模块--> <modules><module>../tlias-pojo</module><module>../tlias-utils</module><module>../tlias-web-management</module> </modules>
三,继承与聚合
作用
聚合用于快速构建项目
继承用于简化依赖配置、统一管理依赖
相同点:
聚合与继承的pom.xml文件打包方式均为pom,通常将两种关系制作到同一个pom文件中
聚合与继承均属于设计型模块,并无实际的模块内容
不同点:
聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些
继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
99%的人还看了
相似问题
- 【华为数通HCIP | 网络工程师】821-IGP高频题、易错题之OSPF(2)
- 【机器学习】特征工程:特征选择、数据降维、PCA
- ODBC配置数据源及相关问题(“找不到工程和库”“实时错误91对象变量或with块变量未设置”等)
- 网工内推 | 字节原厂,正式编,网络工程师,最高30K*15薪
- [架构之路-247]:目标系统 - 设计方法 - 软件工程 - 结构化方法的基本思想、本质、特点以及在软件开发、在生活中的应用
- 软件测试/人工智能丨人工智能会取代软件测试工程师吗
- java源码-工程讲解
- 【LSTM】北京pm2.5 天气预测--pytorch版本,有代码可以跑通-LSTM回归问题,工程落地一网打尽
- ModernCSS.dev - 来自微软前端工程师的 CSS 高级教程,讲解如何用新的 CSS 语法来解决旧的问题
- 江湖再见,机器视觉兄弟们,我已经提离职了,聪明的机器视觉工程师,离职不亏本!
猜你感兴趣
版权申明
本文"Maven中的继承与聚合":http://eshow365.cn/6-34245-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!