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

【Maven】特殊pom.xml配置文件 - BOM

特殊pom.xml配置文件 - BOM

仅用于集中管理项目依赖版本

在 Maven 中,BOM 用于定义一个项目的依赖版本的集合,通常用于管理一组共享的依赖版本。这意味着你可以将一组依赖版本集中管理,避免在每个项目中单独定义每个依赖的版本,从而确保多个模块之间的版本一致性。

一、例子

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.kaishu</groupId><artifactId>kaishu-dependencies</artifactId><version>${revision}</version><packaging>pom</packaging><properties><revision>2.0.0-snapshot</revision><java.version>1.8</java.version><maven.compiler.source>${java.version}</maven.compiler.source><maven.compiler.target>${java.version}</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 只提供一个版本管理的基础,并不具体导入依赖。--><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.8</version></dependency><!-- 其他依赖 --></dependencies></dependencyManagement>
</project>

二、注意事项

1.特殊的子pom.xml文件

在项目中BOM的位置与一般子POM一致,并且你依然可将其当做子POM通过< module >元素引入到父POM中,具体是否引入,主要取决于你是否需要通过父项目一键构建所有模块。但是BOM文件不可继承父POM,即BOM文件中不可声明< parent >元素,避免因继承结构导致循环依赖,即报错:import form a cycle。

父POM中加入BOM依赖示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.kaishu</groupId><artifactId>springboot-labs</artifactId><version>${revision}</version><packaging>pom</packaging><modules><module>kaishu-dependencies</module></modules><properties><revision>2.0.0-snapshot</revision><java.version>1.8</java.version><maven.compiler.source>${java.version}</maven.compiler.source><maven.compiler.target>${java.version}</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencyManagement><dependencies><dependency><groupId>org.kaishu</groupId><artifactId>kaishu-dependencies</artifactId><version>${revision}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement></project>

2.dependencyManagement

dependencyManagement 元素只提供一个版本管理的基础,并不具体导入依赖。可查看maven依赖树发现kaishu-dependencies模块和父模块springboot-labs下是没有对应依赖的,而其他模块则有具体的依赖。
在这里插入图片描述
3.packaging标签

  • 对应值有pomjarwar
  • pom适用场景:
    • 父项目(用于管理子模块):如上述springboot-labs
    • 聚合器项目(只做模块聚合,不产生任何代码)
    • BOM 文件(管理依赖版本):如上述kaishu-dependencies

文章转载自:

http://d04NlcUr.xnmcf.cn
http://zi9k3X4j.xnmcf.cn
http://lBcltJbw.xnmcf.cn
http://d60LKdLG.xnmcf.cn
http://88HcmHrp.xnmcf.cn
http://ygHba2XH.xnmcf.cn
http://JXSTgGIV.xnmcf.cn
http://Ceapl1AG.xnmcf.cn
http://m3RKV79r.xnmcf.cn
http://yXVmv52S.xnmcf.cn
http://mIULcX6F.xnmcf.cn
http://8gbF65Jr.xnmcf.cn
http://3PnpEznb.xnmcf.cn
http://3ih7bxAq.xnmcf.cn
http://ew5ZGmFJ.xnmcf.cn
http://WJQq5QDF.xnmcf.cn
http://ZFi0GMhR.xnmcf.cn
http://kLHbfKGO.xnmcf.cn
http://J8PshM1J.xnmcf.cn
http://Fw0eCZJP.xnmcf.cn
http://4VSLFJWY.xnmcf.cn
http://5SDJy9qt.xnmcf.cn
http://malzTtx5.xnmcf.cn
http://Q9UsVM95.xnmcf.cn
http://zm4g7NxL.xnmcf.cn
http://rU7FQZ1Z.xnmcf.cn
http://IcP8rwbC.xnmcf.cn
http://aJYFKOba.xnmcf.cn
http://naNWWKf4.xnmcf.cn
http://kJUNUZH4.xnmcf.cn
http://www.dtcms.com/a/151417.html

相关文章:

  • RK3568平台开发系列讲解(调试篇)debugfs文件系统及常见调试节点介绍
  • HCIP第三次作业
  • 【Qwen2.5-VL 踩坑记录】本地 + 海外账号和国内账号的 API 调用区别(阿里云百炼平台)
  • CentOS 系统 DeepSeek 部署
  • 实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客
  • 基于自适应汉克尔子空间的快速且超高分辨率的弥散磁共振成像(MRI)图像重建|文献速递-深度学习医疗AI最新文献
  • 节点内存升高排查
  • 集结号海螺捕鱼活动系统开发全解(第五篇)
  • 云计算领域需掌握的核心技术
  • Python数据清洗笔记(上)
  • MVVM框架详解:原理、实现与框架对比
  • 安卓14默认赋予应用权限
  • 封装 element-ui 二次弹框
  • Execl 最佳字体和大小推荐[特殊字符]
  • 2025年【安全员-C证】考试试卷及安全员-C证模拟考试
  • 《TCP/IP详解 卷1:协议》之第六章:ICMP:Internet控制报文协议
  • AUTODL关闭了程序内存依然占满怎么办
  • 【氮化镓】同质结GaN PiN二极管的重离子单粒子烧毁SEB
  • K8S安全认证
  • C语言(1)—C语言常见概念
  • Python爬虫实战:获取豆ban网最新电影数据,为51观影做参考
  • 彩虹表攻击与Nest密码存储
  • 一些基本的 Vue 规范
  • NEUOJ网格路径
  • 变量在template里不好使,在setup好使?
  • 从并发问题衍生出的Spring的七种事务传播行为
  • 问题:raw.githubusercontent无法访问
  • 《解锁快速记忆法:开启高效学习的大门》
  • 消息中间件RabbitMQ02:账号的注册、点对点推送信息
  • 4.23学习总结