zoukankan      html  css  js  c++  java
  • Maven中解决依赖冲突的问题

    1.短路优先:谁离得最近就使用谁的依赖jar包

    C到达A为C->B->A

    C到达B为C->B

    例如:

    A中的 commons-io的版本为2.4

    B中的commons-io的版本为2.0

    C中依赖于B,B依赖于A

    则C的junit的包为2.0版本

    因为依赖的短路优先

    2.如果两条路都是一样长的时候呢?

    C到达A为C->A

    C到达B为C->B

    则看pom文件中依赖的两个工程谁在前面就是用哪个版本

    例如:

    这里使用的common-io为2.4版本

            <dependency>
                <groupId>org.lonecloud.A</groupId>
                <artifactId>A</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <!--C依赖于B但是会将A的依赖传递进来 -->
            <dependency>
                <groupId>org.lonecloud.B</groupId>
                <artifactId>B</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <!-- 此标签的作用是可以将B的传递依赖关系A不传递给C -->
                <!-- <exclusions> <exclusion> <groupId>org.lonecloud.A</groupId> <artifactId>A</artifactId> 
                    </exclusion> </exclusions> -->
            </dependency>

    C文件中添加了A和B的依赖项的时候谁最先加载则使用谁的jar包

    下面使用的是2.0的版本,也就是B中的jar包

            <dependency>
                <groupId>org.lonecloud.B</groupId>
                <artifactId>B</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <!-- 此标签的作用是可以将B的传递依赖关系A不传递给C -->
                <!-- <exclusions> <exclusion> <groupId>org.lonecloud.A</groupId> <artifactId>A</artifactId> 
                    </exclusion> </exclusions> -->
            </dependency>
            <dependency>
                <groupId>org.lonecloud.A</groupId>
                <artifactId>A</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
  • 相关阅读:
    JavaScript For, While和 递归
    adb 常用命令
    Android 测试 之adb shell
    Android测试入门学习
    Android 测试之Monkey
    Linux大全
    Android 测试 之MonkeyRunner
    手机耗电测试工具
    https双向认证网站搭建
    Mac下布置appium环境
  • 原文地址:https://www.cnblogs.com/lonecloud/p/5692146.html
Copyright © 2011-2022 走看看