前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Maven中的依赖管理

Maven中的依赖管理

作者头像
鱼找水需要时间
发布2023-02-16 19:47:44
发布2023-02-16 19:47:44
80800
代码可运行
举报
文章被收录于专栏:SpringBoot教程SpringBoot教程
运行总次数:0
代码可运行

文章目录

1. 依赖配置

依赖指当前项目运行所需的jar,一个项目可以设置多个依赖

代码语言:javascript
代码运行次数:0
运行
复制
<!-- 设置当前项目所依赖的所有jar--> 
<dependencies> 
    <!— 设置具体的依赖--> 
    <dependency> 
        <!— 依赖所属群组id--> 
        <groupId>junit</groupId> 
        <!— 依赖所属项目id--> 
        <artifactId>junit</artifactId> 
        <!— 依赖版本号--> 
        <version>4.12</version>
    </dependency>
</dependencies>

2. 依赖传递

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:项目的依赖如果依赖其他资源,当前项目间接依赖其他资源

2.1 依赖传递冲突问题

  • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同的层级被依赖时,配置的顺序靠前的覆盖配置顺序靠后的
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的(在一个pom中)

2.2 可选依赖

可选依赖指对外隐藏当前所以来的资源–不透明

代码语言:javascript
代码运行次数:0
运行
复制
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.12</version> 
    <optional>true</optional>
</dependency>

2.3 排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本–不需要

代码语言:javascript
代码运行次数:0
运行
复制
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.12</version> 
    <exclusions> 
        <exclusion> 
            <groupId>org.hamcrest</groupId> 
            <artifactId>hamcrest-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 依赖范围

依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围

  • 作用范围
    • 主程序范围有效(main文件夹范围内)
    • 测试程序范围有效(test文件夹范围内)
    • 是否参与打包(package指令范围内)

scope

主代码

测试代码

打包

示例

compole(默认)

Y

Y

Y

log4j

test

Y

junit

provided

Y

Y

servlet-api

runtime

Y

jdbc

4. 依赖范围传递性

带有依赖范围的资源在进行传递时,作用范围将受到影响

到此,本章内容就介绍完啦

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 依赖配置
  • 2. 依赖传递
    • 2.1 依赖传递冲突问题
    • 2.2 可选依赖
    • 2.3 排除依赖
  • 3. 依赖范围
  • 4. 依赖范围传递性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档