日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven精选系列--依赖范围、传递、排除

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven精选系列--依赖范围、传递、排除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?Maven精選系列--依賴范圍、傳遞、排除

添加依賴


下面我添加了一個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?- 已提供依賴范圍。這個范圍表示只提供編譯和測試階段有效,運行期間不需要,像tomcat等容器本身已經提供的servlet-api等。


  • runtime?- 運行時依賴范圍。這個范圍表示只有在運行和測試期間才有效,編譯期間不需要,像連接數據庫的jdbc驅動程序等。


  • test?- 測試依賴范圍。這個范圍只有測試階段有效,編譯和運行不需要,像單元測試提供的junit包。


  • system?- 系統依賴范圍。這個范圍表示不依賴本地倉庫,jar在其他的目錄,需要通過systemPath指定路徑,這個不建議使用。


  • import?- 引用依賴范圍。Maven2.0.9之后新增的范圍,只能用在<dependencyManagement>中,并且導入的type為pom類型的父工程配置,一般用來解決多繼承問題。


依賴傳遞


依賴的傳遞前面講過通過繼承和聚合的方式可以達到,通過繼承的方式可以輕松的從父項目繼承過來,通過聚合的方式也可以間接的傳遞過來。


繼承:A繼承B,A就可以繼承B的dependencies依賴。

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


下面這是dubbo的直接依賴和所有間接依賴的關系列表。



依賴排除


在依賴傳遞過程中,如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>


總結

以上是生活随笔為你收集整理的Maven精选系列--依赖范围、传递、排除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。