当前位置: 首页 > news >正文

Maven-继承与聚合 - 实践

Maven-继承与聚合

继承

Maven不支持多继承,一个Maven项目中只能继承一个父工程,但是Maven可以通过多重继承来达到多继承的效果。

  1. 创建父工程,在pom.xml中声明父工程的打包方式为pom(不设置打包方式默认为jar)。父工程或聚合工程模块中不写代码,仅进行依赖管理,且打包方式应设为pom。
<packaging>pom</packaging>
  1. 在父工程中配置各个工程共有的依赖,子工程会自动继承父工程的依赖。
  2. 在子工程的pom.xml中通过<parent></parent>标签声明其父工程,配置继承关系。
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<relativePath>....</relativePath><!--relativePath标签用来指定父工程的pom文件的相对位置(如果不指定,将从本地仓库/远程仓库查找该工程) --></parent>

自定义属性

当然我们也可以在pom.xml文件中通过<properties>标签来自定义属性并通过${...}的方式引用自定义标签内的属性。

  1. 自定义属性
<properties><!--自定义属性lombock.version--><lombok.version>1.18.30</lombok.version></properties>
  1. 引用自定义属性
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version><!--通过${}引用自定义属性lombock.version--></dependency>

版本锁定

我们可以在父工程的pom文件中通过标签来统一管理依赖的版本。

<!--统一管理依赖版本--><dependencyManagement><dependencies><dependency><groupId>...</groupId><artifactId>...</artifactId><version>...</version></dependency></dependencies></dependencyManagement>

该标签并不会将对应的依赖直接引入,而是只对依赖的版本进行统一管理,所以子工程在使用这个依赖的时候,仍需要引入对应依赖,只是可以不指定版本。

聚合

通过maven提供的聚合功能,我们能够一件构建项目,而不需要再去考虑各个模块打包间的依赖关系,maven的聚合功能会自动根据当前聚合工程中各个子模块的依赖关系先后进行打包操作。

聚合工程与父工程一致只有一个pom文件,并且需将打包方式也设置为pom,因此常将两个工程进行合并。需要在聚合工程(也就是父工程中)通过<moudules>标签将需要聚合的子模块聚合。

<!-- 聚合其他模块 --><modules><module>...</module><module>...</module><module>...</module><!-- <module> 标签中填写需要聚合模块的位置 --></modules>
http://www.jsqmd.com/news/19550/

相关文章:

  • 千疮百孔的心被恨与悲彻底剥离 Kill my memory 让我将快乐全忘记
  • 速尝鲜!PS 2026 新功能:移除工具 + 神经滤镜
  • 谎言 欺骗 鄙夷 如破碎瓦砾铺满地 利用陷害窒息莫名遭受唾骂遗弃
  • git 切账户
  • 权威调研榜单:天津全屋定制整体橱柜方案TOP4榜单好评深度解析
  • 别再手动处理琐事了!用Coze搭建AI工作流,我每天白赚2小时
  • 单时段机组组合优化的粒子群算法实现(MATLAB)
  • Day21-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Stream-集合框架(stream)
  • 权威调研榜单:湖南张家界旅游团服务TOP3榜单好评深度解析
  • 权威调研榜单:上海文章批量生成器服务商TOP9榜单技术能力深度解析
  • 人工智能客服企业哪家强?2025年AI智能客服排名推荐
  • [GXYCTF2019]Ping Ping Ping 1
  • C# 元组 Tuple ValueTuple
  • Java语言的核心特性与大数据应用研究
  • Dify Windows Docker.desktop 部署
  • SketchUp 2022-2025 坯子插件库 v3.2.6官方正式版下载安装教程
  • 国标GB28181算法算力平台EasyGBS如何在平安乡村搭建无线视频联网监控系统?
  • 权威调研榜单:安宫牛黄丸生产厂家TOP3综合实力解析
  • (自用)如何使用 mt19937 生成随机数?
  • 第四章 windows实战-向日葵
  • 轻量服务器Lighthouse + 1Panel + Halo,三步打造你的专属网站
  • 第四章 windows实战-emlog
  • Docling + LangChain + RAG 构建智能文档问答系统
  • 企业公用电脑登录安全管控的终极方案:ASP操作系统安全登录管控方案 - 详解
  • 完整教程:【Linux】基础知识与操作汇总:一份给新手的 Linux 学习总结
  • 第四章 windows实战-wordpress
  • 2025 年固化剂生产厂家最新推荐排行榜:聚焦国内优质厂商,助力选购高性价比混凝土及厂房用固化剂
  • 2025 年锂基固化剂生产厂家最新推荐榜单:聚焦优质企业,助力客户精准选品,解决行业选品难题锂基密封/锂基混凝土/厂房锂基固化剂公司推荐
  • 广义串并联图
  • 详细介绍:【超全】基于Springboot的海鲜销售管理系统【包括源码+文档+调试】