maven中的依赖冲突的解决

来源:互联网 发布:厦门java培训多少钱 编辑:程序博客网 时间:2024/05/20 00:50

1.依赖冲突的解决

     

   2.1两个基本原则:

    1).短路优先原则

        A->B->logback-1.0.jar
        A->logback-1.1.jar

 

     2).先声明先优先原则(先解析先引用)
       与项目A pom中配置 引用坐标的顺序有关,如果依赖B在C前的话 就优先B,反之...

       A->B->logback-1.0.jar
       A->C->logback-1.1.jar

 2.2 演示两个原则

    1).创建三个maven工程  

        maven-01,maven-02,maven-03

    2).三个工程依赖结构:   

      maven-01依赖 spring-test,maven-02,maven-03 (maven-02/03需要首先提交本地仓库,maven-01才能找到 ,可以参考寻找构件过程:1.3 仓库寻找构件过程) ;

      maven-02依赖commons-logging-1.1.1;

      maven-03工程依赖 commons-logging-1.1.3

     3).看下myEclipse或者执行mvn dependency:tree 查看依赖树:

 

     myeclispe:依赖树

  4).冲突解决办法:

 

   4.1  pom配置1:

   

 

Xml代码  收藏代码
  1. <dependency>  
  2.     <groupId>org.springframework</groupId>  
  3.     <artifactId>spring-test</artifactId>  
  4.     <version>4.2.2.RELEASE</version>  
  5.     <!-- 依赖排除 可以排除对commons-logging 的依赖  
  6.     <exclusions>  
  7.         <exclusion>  
  8.             <groupId>commons-logging</groupId>  
  9.             <artifactId>commons-logging</artifactId>  
  10.         </exclusion>  
  11.     </exclusions>  
  12.     -->  
  13. </dependency>  
  14.   
  15. <!-- 添加对maven-02依赖 -->  
  16. <dependency>  
  17.     <groupId>com.sohu.train</groupId>  
  18.     <artifactId>maven-02</artifactId>  
  19.     <version>1.0-SNAPSHORT</version>  
  20. </dependency>  

 

 

  短路优先原则:

         maven-01->spring-test->spring-core->commons-loggings-1.2(依赖深度3)

         maven-01->maven-02->commons-loggings-1.1.1(依赖深度2)

         所以maven01工程依赖的commons-loggings-1.1.1

 

详情参考:http://yanan0628.iteye.com/blog/2270409

 

0 0
原创粉丝点击