2016-02-23 105 views
0

我注意到項目的poms中有一些圖案。有這樣的依賴關係圖:你的項目A - >其他項目B - > B的依賴項目C.項目B被聲明爲A的pom中的依賴項,而B的依賴項C從B中排除並重新聲明爲項目A.如果Maven文檔公開說它需要「最近」的依賴項,那麼如果直接聲明它,那麼Maven會使用該版本而不是任何可傳遞的版本,這種排除的意義何在?排除依賴關係的依賴關係並重新聲明它的意義是什麼?

回答

0

您通常會這樣做來更改依賴項的版本或範圍。 因此,您可能會將依賴關係從依賴關係排除到B,這會導致您不依賴於C.現在,您可以使用另一個版本向A中的C添加直接依賴關係。

文檔仍然是正確的,每個工件都應該聲明它直接需要的東西。但在發生衝突的情況下,上述模式就是救援。

+0

如果發生衝突,「最接近」的依賴關係會勝出,這就是文檔所說的。只要將它聲明爲頂級依賴項,maven就應該使用該版本,而不管傳遞依賴項。那麼,爲什麼你需要排除它呢? – MaxNevermind