Maven_依赖的原则说明

  • 依赖的原则:
    • 作用:解决模块工程之间的jar包冲突问题
    • 情景设定1:验证路径最短者优先原则
      这里写图片描述
      我们可以看到上图MakeFriends依赖于HelloFriend,HelloFriend依赖于Hello,Hello依赖log4j.1.2.17这个版本,按照依赖的传递性,MakeFriends里面Maven也会帮你自动的把log4j.1.2.17传递过来,但是呢我们现在假设HelloFriend因为某些需要要依赖log4j.1.2.14这个版本,按照依赖的传递性,log4j.1.2.14也应该传递到MakeFriends中来,这个时候MakeFriends就犯难了,到底该依赖哪个好呢?
      Maven里面默认依赖是遵循验证路径最短者优先原则,看图知道MakeFriendslog4j.1.2.17要走三步,而到log4j.1.2.14只需要走两步,所以Maven默认传递过来的依赖会是log4j.1.2.14,这时如果你想要依赖log4j.1.2.17就要明确声明你要依赖log4j.1.2.17才可以!
    • 情景设定2:验证路径相同时,先声明者优先
      这里写图片描述
      这里的先声明指的是<dependency></dependency>标签的声明顺序
<dependency>
            <groupId>com.atguigu.maven</groupId>
            <artifactId>OurFriends</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>com.atguigu.maven</groupId>
            <artifactId>HelloFriend</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

像上面这样OurFriends声明在前面,默认传递过来的依赖就是log4j.1.2.17,反之亦然

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值