添加依赖


下面我添加了一个spring-web的依赖,maven就会去下载spring-web的jar包及它依赖的一些jar包。


<dependencies>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>4.2.5.RELEASE</version>
 <scope>compile</scope>
 </dependency>
</dependencies>

依赖范围


依赖配置中有一个scope之前没讲过,它就是依赖范围。什么是依赖范围就是指定你这个jar包在哪个阶段时才有效。


  • compile
  • provided
  • runtime
  • test
  • system


  • import

依赖传递


依赖的传递前面讲过通过继承和聚合的方式可以达到,通过继承的方式可以轻松的从父项目继承过来,通过聚合的方式也可以间接的传递过来。


继承:A继承B,A就可以继承B的dependencies依赖。

聚合:A依赖C,C依赖D,那么A就要依赖D自然也就获取了D的依赖。


下面这是dubbo的直接依赖和所有间接依赖的关系列表。


maven 全局 排除 依赖 maven排除parent传递依赖_spring


依赖排除


在依赖传递过程中,如A依赖B、S2.0,B依赖C、S1.0,这样A就有了S1.0和S2.0两个依赖,这样某些情况下会造成冲突需要手动把B间接传递过来的依赖排除掉,就是不依赖B带过来的S1.0的包。


<dependency>
 <groupId>org.testgroupId>
 <artifactId>B</artifactId>
 <version>1.0</version>
 <exclusions>
 <exclusion>
 <groupId>com.test</groupId>
 <artifactId>S</artifactId>
 </exclusion>
 </exclusions>
</dependency>

排除所有间接依赖

<dependency>
 <groupId>org.testgroupId>
 <artifactId>B</artifactId>
 <version>1.0</version>
 <exclusions>
 <exclusion>
 <groupId>*</groupId>
 <artifactId>*</artifactId>
 </exclusion>
 </exclusions>
</dependency>