MAVEN_依赖管理

1. maven的坐标
 maven世界拥有大量构建,我们需要用一个规范(坐标)来作为某个构建的唯一标识(类似于数据库中的主键)。
maven坐标组成:

 groupId:定义当前maven项目隶属项目
 artifactld:定义实际项目中的一个模块
 version:定义项目的当前版本
 packing:定义该项目的打包方式

2. 依赖范围
 给jar包的作用范围进行限制,根据不同需求,进行不同等级的限制。在pom.xml中的<dependency>标签下配置<scope>子标签。

依赖范围(scope)对运行主代码(源码)对测试代码参与打包例子
cpmpile(默认值)有效有效有效log4j
test有效Junit
provided有效有效servlet-api
runtime有效JDBC Driver


3. 依赖管理
<1>传递性依赖
 举个栗子来讲,有三个角色分别为 校长、老师和学生。直接依赖:老师吩咐学生去做事情,对老师而言,学生就是直接依赖。间接依赖:校长吩咐老师去做事情,老师又叫学生去做事情。对校长而言,老师是直接依赖,学生就是间接依赖。

<2>可选依赖
 控制当前资源是否向下传递,在pom.xml中的<dependency>标签下配置<optional>子标签。其默认值为false,如果配置成true,那么就会使得配置了这个optional的jar包不跟随项目传递而传递。

<3>排除依赖
 相对于可选依赖,排除依赖具有主动权,可以自己选择要不要这个jar包,而对于选择依赖就是被动了,自己没有权利选择,人家给你了,你才有排除依赖权,人家不给你jar包,你也没办法选择要还是不要。

<dependencies>
            <!-- 设置排除 -->
            <!-- 排除依赖必须基于直接依赖中的间接依赖设置为可以依赖为false -->
            <!-- 设置当前依赖中是否使用间接依赖 -->
            <exclusions>
                <!--具体排除-->
                <exclusion>
                    <groupId>cn.itcast</groupId>
                    <artifactId>One</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

<4>依赖冲突
 如果直接与间接依赖中包含有同一个坐标不同版本的资源依赖,以直接依赖的版本为准(就近原则)。
 如果直接依赖中包含有同一个坐标不同版本的资源依赖,以配置顺序下方的版本为准(就近原则)。可以理解成最后的修改覆盖了之前的修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值