scope作用域:

          1  comipe  默认,编译 测试 打包都依赖,有传递性,会被打到包里;

  2 provided  编译 测试依赖,不会打包,有传递性,不会被打到包里。例如servlet-api有容器提供,没必要打到包里。

          3 test 测试时依赖,不会打包,没有传递性,不会被打到包里。如测试包下的测试。

         4 runtime 测试和运行时候依赖,有传递性,会打到包里。如jdbc驱动。


传递性:层级最短的,最先被引用的被传递。

如A项目有x.jar,B项目也要想x.jar,如果c项目先引用的A又引用的B,则使用A里的jar,如果A里的jar是通过A0引用得到的,则先使用B里的jar。


排除不需要的依赖 

a依赖b,b依赖c,如果我们只想依赖b不依赖c,就要用exclusions

       

  1. <dependencies>  
  2.        <dependency>  
  3.               <groupId>b</groupId>  
  4.               <artifactId>b</artifactId>  
  5.               <version>1.0</version>  
  6.               <exclusions>  
  7.                      <exclusion>  
  8.                             <groupId>c</groupId>  
  9.                             <artifactId>c</artifactId>  
  10.                      </exclusion>  
  11.               </exclusions>  
  12.        </dependency>  
  13.        ...  
  14. </dependencies>  


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐