maven-依赖管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

依赖管理能带来啥:

  • 避免版本不一致导致的兼容问题。
  • 可以不用显式声明版本号
  • 自动化版本升级,只要改主POM文件就可以完成整个项目的版本升级

一、Maven BOM

Maven 提供了一个强大的工具——Bill of Materials (BOM)用来完成依赖管理。
直译为“材料清单”。在 Maven 的上下文中,BOM 是一个特殊的 POM(Project Object Model)文件,它列出了一个项目所需的所有依赖及其对应的版本。与其他 POM 文件不同,BOM 文件主要用于依赖管理,确保所有模块共享相同的依赖版本。

二、使用

通过在<dependencyManagement>标签中添加<dependency>标签并指定 BOM 的 groupId、artifactId 和 version 来完成。

 	<properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <jjwt.version>3.19.0</jjwt.version>
        <lombok.version>1.18.24</lombok.version>
        <spring.boot.version>3.2.5</spring.boot.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <!-- Import dependency management from Spring Boot -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.auth0</groupId>
                <artifactId>java-jwt</artifactId>
                <version>${jjwt.version}</version> <!-- 请检查最新版本并替换 -->
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version> <!-- 检查最新版本 -->
                <scope>provided</scope> <!-- 如果使用IDEA或其他开发环境,可以设置为provided,因为它们在编译时会自动处理 -->
            </dependency>
        </dependencies>
    </dependencyManagement>

使用依赖项:一旦项目引入了 BOM,项目中其他模块在声明依赖时可以省略版本号,因为 BOM 会自动提供正确的版本。

注意,此时并没有下载依赖哦!
在这个配置中,部分并没有直接下载任何依赖。仅用于定义依赖的版本管理,它告诉Maven在子模块中声明这些依赖时应该使用哪个版本。实际的下载发生在子模块的标签中,当这些依赖被引用时。

三、SpringBoot的依赖管理

方式一:

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.10</version>
	</parent>
	
	<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

这是因为 继承的spring-boot-starter-parent中又继承了spring-boot-dependencies
在这里插入图片描述
而在spring-boot-dependencies中才真正的做了springboot的依赖管理。

截图:总之你自己去看把!

方式二:

直接引入spring-boot-dependencies

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.0.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值