在我的專案中,我們使用 jackson-databind 的 2.9.0 版本。我想使用 maven 依賴項(https://github.com/Jaspersoft/jrs-rest-java-client),但它需要使用舊版本的 jackson-databind,因為在較新的版本中,他們洗掉了一個方法依賴項呼叫(引發例外“NoSuchMethod”)。
在這種情況下該怎么辦?顯然,我不能為了取悅這個唯一的依賴而降級我們在專案中使用的 jackson-databind 版本。
有沒有辦法在我的專案中繼續使用最新版本,但讓需要舊版本的依賴項使用舊版本?在我看來,這將是完美的解決方案,但我覺得它不會那樣作業。
uj5u.com熱心網友回復:
看看 Maven Shade 插件:http : //maven.apache.org/plugins/maven-shade-plugin/index.html
它允許您重命名版本的包
uj5u.com熱心網友回復:
即使您找到了在專案中包含相同依賴項的兩個版本的解決方案。您仍然有問題,當在一個 JVM 中運行應用程式時,類加載器將不知道現在需要哪個版本的類,因此它將加載并提供在類加載器層次結構中找到的第一個類。所以你不能在同一個 ClassLoader 中使用一個 Class 的兩個版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364955.html
上一篇:如何自動讓cmd關閉批處理檔案
下一篇:在構建期間不執行測驗
