2015-10-09 33 views
2

如果一個Maven項目可以過渡地使用一個庫的多個版本,Maven的依賴關係調解將按照最接近的定義進行仲裁併在聲明中進行排序。 (見docs。)爲什麼Maven的依賴關係調解不選擇最新版本?

例如,如果A→B→X-1.0.0和A→B→C→X-2.0.0,則建築A將使用X-1.0.0。

爲什麼?假設X-2.0.0增加了C使用的一些方法是合理的,所以運行A可能會產生一個運行時異常。選擇最新版本會更有意義嗎? (我知道你可以手動指定它。)

回答

1

假設某個2.x版本已刪除 A或B所使用的某種方法也是合理的。Maven無法知道哪一個在此正確並判定最接近的定義是決勝者。如果開發人員不喜歡這種選擇,他可以添加一個直接的依賴關係,就像你觀察到的那樣。