簡體   English   中英

Gradle 依賴管理:如何在 android 項目中同時維護新舊版本的依賴?

[英]Gradle dependency management: how to maintain both old and new version of a dependency in android project?

我目前在我的一個 android 項目中面臨着一種情況。

情況是:

項目使用庫 A 和 B(新版本)。 庫 A 也依賴於庫 B(舊版本)。 A 和 B 都是獨立維護的,它們的發布不能同步。

新版本庫 B 的舊版本和新版本是不兼容的,因為某些接口定義在新版本中發生了變化。 我認為這會在構建項目時產生一些問題。

在我的 android 項目中同時維護 A 和 B 的最佳方法是什么?

正如評論中所述,您的問題沒有現成的解決方案,您最好的選擇可能是讓您的項目使用庫 A 使用的相同舊版本的庫 B。

只有當您真正依賴僅在新版本 B 中可用的功能或修復程序時,您才可以嘗試使用shadow 插件來構建您自己的帶有重定位包的庫 B 版本。 那是:

  • 使用新版本的 B 作為依賴項創建一個新項目,例如custom-b
  • 應用 shadow-plugin 並將 B 的類重新定位到另一個包。 例如包com.library.b可以變成custom-b.com.library.b
  • 在本地發布custom-b項目的shadow-jar,讓你的主項目依賴這個jar

這樣,新版本 B 的類將在不同的包下可用,並且可以由您的代碼使用。

如上所述,如果您真的依賴 B 的新版本,您應該只嘗試這樣做,因為這會引入一些相當大的額外復雜性,如果不是絕對必要的,應該避免。 或者,您當然也可以詢問 A 的開發人員,他們是否計划在即將發布的版本之一中使用新版本的 B。 這也可能解決您的問題。

暫無
暫無

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

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