maven的依赖冲突时的原则

1.如图:

假设上图中的项目B引入了一个junit.jar架包是3.0的版本

项目D引入了一个junit.jar架包是4.0的版本,那么项目X引用的将会是4.0的版本

 

2.pom.xml排到最前面的架包优先:

  A—B—Cge

  A—N—Cge

假设项目B引入了一个junit.jar架包是3.0的版本

项目N引入了一个junit.jar架包是4.0的版本

项目C在pom.xml的依赖先后顺序如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.imooc.Cge</groupId>
  <artifactId>Cge</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Cge</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
      <dependency>
     <groupId>com.imooc.N</groupId>
      <artifactId>N</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
     <groupId>com.imooc.B</groupId>
      <artifactId>B</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>
  
  
</project>

最后项目Cge将会引用junit.jar架包是4.0的版本

posted @ 2018-05-23 10:08  周永发  阅读(264)  评论(0编辑  收藏  举报