我正在創建一個 android 庫,它最終將用于我的許多應用程式。假設這個庫有一個版本為 1.0 的依賴項 X。如果主應用程式想要使用 0.5 版本的依賴項 X 怎么辦?我不希望主應用程式通過 gradle 排除依賴項的程序。有沒有其他辦法?我想更改名稱或為庫中的依賴項提供別名?這甚至可能嗎?
uj5u.com熱心網友回復:
如果 gradle 在依賴圖中找到兩個(或更多)版本的依賴項,它將默認選擇最新版本。大多數庫都保證向后兼容性,因此這通常可以正常作業。Gradle 還提供了許多鉤子讓客戶選擇不同的策略。
如果您真的希望您的實用程式的使用者在其類路徑上有兩個版本的(共享/傳遞)依賴項,您需要重新打包依賴項,以便每個類移動到不同的包,因為每個類只能有一個版本(完全限定)類路徑上的類名
要重新打包 jar,請查看shadow plugin。許多庫(例如 hibernate 和 spring)選擇重新打包/隱藏ASM jar 以避免沖突。
請注意,在 99% 的情況下重新打包 jar 是錯誤的選擇,您應該讓正常的依賴決議程序發生
見理解依賴決議
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/311275.html
標籤:安卓 安卓工作室 等级 android-gradle 插件
