Maven 传递性依赖
生活随笔
收集整理的這篇文章主要介紹了
Maven 传递性依赖
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
maven引入的傳遞性依賴機制,一方面大大簡化和方便了依賴聲明,另一方面,大部分情況下我們只需要關心項目的直接依賴是什么,而不用考慮這些直接依賴會引入什么傳遞性依賴。但有時候,當傳遞性依賴造成問題的時候,我們就需要清楚地知道該傳遞性依賴是從哪條依賴路徑引入的。
例如,項目A有這樣的依賴關系 : A-->B-->C-->X(1.0)、A-->D-->X(2.0),X是A的傳遞性依賴,但是兩條依賴路徑上有兩個版 本的X,那么哪個X會被maven解析使用呢?兩個版本都被解析顯然是不對的,因為那會造成依賴重復,因此必須選擇一個。maven依賴調解的第一原則:路徑最近者優先。該例中X(1.0)的路徑長度為3,而X(2.0)的路徑長度為2,因此X(2.0)會被解析使用。
依賴調解第一原則不能解決所有問題,比如這樣的依賴關系:A-->B-->Y(1.0),A-->C-->Y(2.0),Y(1.0)和Y(2.0)的依賴路徑長度是一樣的,都為2。那么到底誰會被解析使用呢?在maven2.0.8及之前的版本中,這是不確定的,但是maven2.0.9開始,為了盡可能避免構建的不確定性,maven定義了依賴調解的第二原則:第一聲明者優先。在依賴路徑長度相等的前提下,在POM中依賴聲明的順序決定了誰會被解析使用。順序最靠前的那個依賴優勝。
總結
以上是生活随笔為你收集整理的Maven 传递性依赖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Animation (安
- 下一篇: 学习,思维三部曲:WHAT、HOW、WH