返回顶部
分享到

Maven特殊pom.xml配置文件-BOM解读

java 来源:互联网 作者:佚名 发布时间:2025-06-01 15:34:48 人浏览
摘要

特殊pom.xml配置文件 - BOM 仅用于集中管理项目依赖版本 在 Maven 中,BOM 用于定义一个项目的依赖版本的集合,通常用于管理一组共享的依赖版本。 这意味着你可以将一组依赖版本集中管理,避

特殊pom.xml配置文件 - BOM

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

在 Maven 中,BOM 用于定义一个项目的依赖版本的集合,通常用于管理一组共享的依赖版本。

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

一、例子

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<?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依赖示例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<?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标签

对应值有pom、jar、war等

pom适用场景:

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

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 一文彻底搞懂Java中的SPI是什么
    在大厂 Java 面试中,SPI(Service Provider Interface)常被用来考察候选人对模块解耦、框架设计和类加载机制的理解。很多候选人只知其名不知其
  • Maven特殊pom.xml配置文件-BOM解读

    Maven特殊pom.xml配置文件-BOM解读
    特殊pom.xml配置文件 - BOM 仅用于集中管理项目依赖版本 在 Maven 中,BOM 用于定义一个项目的依赖版本的集合,通常用于管理一组共享的依赖版
  • Java 集合 Collection介绍及常用方式

    Java 集合 Collection介绍及常用方式
    单列集合体系结构 注意: List系列集合添加的元素是有序(存取数据的顺序相同),可重复,有索引的 Set系列集合 添加的元素是无序,不能
  • Spring Boot 常用注解详解与使用最佳实践建议
    一、核心启动注解 1. @SpringBootApplication 作用:Spring Boot应用的入口注解,组合了@Configuration、@EnableAutoConfiguration和@ComponentScan 使用场景:主启
  • Spring Boot Controller处理HTTP请求体的方法
    Spring Boot (通过Spring MVC) 提供了强大的机制来处理不同 Content-Type? 的HTTP请求体。这主要依赖于 HttpMessageConverter? 接口的各种实现,它们能够自
  • 慢sql提前分析预警和动态sql替换-Mybatis-SQL

    慢sql提前分析预警和动态sql替换-Mybatis-SQL
    大促备战,最大的隐患项之一就是慢sql,带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,而且对sql好坏的评估有一
  • SpringBoot内嵌Tomcat临时目录问题及解决
    SpringBoot内嵌Tomcat临时目录问题 听说后面上线可能tomcat临时文件夹会被Linux删除,会报找不到错误,现在赶紧记录一下,已被不时之需。 存在
  • SpringBoot使用GZIP压缩反回数据问题

    SpringBoot使用GZIP压缩反回数据问题
    SpringBoot使用GZIP压缩反回数据 1、初识gzip 第一次看到或者说注意到gzip的时候是在做数据爬虫的时候,需要爬取第三方网站的图片,开始写的
  • Java中怎么优雅地处理null值
    假设我们有一个学生对象,以及这个学生对象的 Optional 包装器: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class Student { private Stri
  • SpringBoot实现数据库读写分离的3种方法
    一、数据库读写分离概述 在大型应用系统中,随着访问量的增加,数据库常常成为系统的性能瓶颈。为了提高系统的读写性能和可用性,读
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计