Maven入门-依赖管理

本文详细解读依赖管理的各个方面,包括直接与间接依赖,冲突解决策略(路径优先、声明优先和特殊优先),可选依赖的透明性,以及依赖范围的设定。重点讲解了父项目依赖管理的作用,帮助开发者理解和应用这些概念于实际项目中。
摘要由CSDN通过智能技术生成

依赖管理

依赖传递

  • 直接依赖:在当前项目中用依赖配置建立起的引用关系
  • 间接依赖:当前项目引用的资源A如果还依赖其他资源B,那么当前项目间接依赖其他资源B
    间接依赖

依赖传递冲突

  1. 路径优先:当依赖中出现相同类型的资源时,依赖的层级越深,优先级越低,反之,优先级越高
  2. 声明优先:当资源在相同层级被依赖时,配置顺序靠前的优先配置顺序靠后的
  3. 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

可选依赖

  • 可选依赖指对外隐藏当前所依赖的资源----不透明,通过optional标签
		<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <!--true:隐藏  false:不隐藏-->
            <optional>true</optional>
        </dependency>

排除依赖

  • 排除依赖指主动断开和资源的依赖关系,被排除的资源无需指定版本
 	   <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <optional>true</optional>
            <!--排除依赖-->
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <!--不用写版本-->
                </exclusion>
            </exclusions>
        </dependency>

依赖范围

  • 概念:依赖的jar默认可以在项目中的所有地方使用,通过scope标签指定其作用范围
  • 作用范围:
    1. 主程序范围(main)
    2. 测试程序范围(test)
    3. 是否参与打包(package指令范围内)

在这里插入图片描述

DependecyManageMent 的理解(重要)

  • dependecyManagement通常加在父项目上,用于依赖版本管理,但他只是声明依赖的版本,并不会真正的引入依赖。子模块需要用到某个依赖的时候,就不需要再加version了,这样一来就统一了子模块的依赖版本.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值