maven scope作用域和傳遞性和多層依賴排除不需要的依賴


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>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM