簡體   English   中英

避免Java中的依賴地獄的首選步驟是什么?

[英]What are the preferred steps to avoid Dependency Hell in Java?

最近,我在Java中遇到了依賴地獄的麻煩。 是否有適當的程序集可以避免將來發生這種情況?

首先,使用像maven或gradle這樣的依賴管理器。 沒有包含第三方jar的lib文件夾,顯然沒有從其他項目到您的項目的復制類或* .java文件。 抱歉,如果這很明顯,但是我看到很多使用這種技術構建的項目。

但是,下一階段是對依賴關系的優化。 您可以使用都使用庫C的庫A和B。如果都使用相同版本的庫C,則可以。 如果它們依賴於庫C的不同版本,那就會發生地獄。在大多數情況下,這不會引起任何問題,您甚至可能不知道這一事實。 但是有時可能會引起問題。 為了避免這種情況,我建議您不時檢查項目的依賴關系樹,查找重復項,如果存在重復項,請使用依賴項管理器的exclude指令排除舊版本。

但是,由於這些版本的庫不兼容,這可能會失敗。 在這種情況下,沒有解決該問題的一般方法。 有時,您必須降級一個(或幾個)依賴項,以使其相互協作,並等待使用庫C的較新版本的較新版本(在我們的示例中)。

Java程序員在2016年的運氣是,大多數工具通常都是開源的,並且很多工具都可以提供幫助(例如通過github),因此有時您可以貢獻您的修復,並幫助自己和其他開發人員更快地獲得更新的版本。 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM