Maven傳遞依賴的原則

maven引入的傳遞性依賴機制,一方面大大簡化和方便了依賴聲明,大部分情況下我們只需要關心項目的直接依賴是什麼,而不永哥你考慮這些直接依賴會引入什麼傳遞性依賴。但有時候,當歘地形依賴造成問題時,我們就需要清除知道該傳遞性依賴是從哪條依賴路徑引入的。

如下示例:

1.依賴同一個jar包,深度不同:

A->B->C->X(1.0)   依賴深度爲3

A->D->X(2.0)   依賴深度爲2

此時maven會使用深度優先原則,使用深度淺的jar包,使用X(2.0)

2.依賴同一個jar包,深度相同:

A->B->X(1.0)

A->D->X(2.0)

在maven2.0.9之後,使用:第一聲明者優先原則。即:在A的pom文件中,誰的依賴聲明在前面,就依賴哪個傳遞依賴版本的包。例如:B在D之前聲明依賴,則會使用X(1.0)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章