男儿欲遂平生志,六经勤向窗前读。这篇文章主要讲述Gradle依赖管理:如何在android项目中维护新旧版本的依赖项?相关的知识,希望能为你提供帮助。
我面临着目前我的一个android项目中的情况。
【Gradle依赖管理(如何在android项目中维护新旧版本的依赖项())】情况是:
Project使用库A和B(新版本)。库A也依赖于库B(旧版本)。 A和B都是独立维护的,它们的释放无法同步。
在新版本中某些接口定义已更改的意义上,库B旧版和新版的版本不兼容。我认为这将在构建项目时产生一些问题。
在我的android项目中维护A和B的最佳方法是什么?
答案正如评论中已经说明的那样,没有针对您的问题的开箱即用的解决方案,您最好的选择可能是让您的项目使用库A使用的库B的旧版本。
只有当您真正依赖于仅在新版本B中可用的功能或修复时,您才可以尝试使用shadow plugin构建具有重定位包的库B的库。那是:
- 创建一个新项目,例如
custom-b
以新版本的B作为依赖 - 应用shadow-plugin并将B的类重定位到另一个包。例如包
com.library.b
可能成为custom-b.com.library.b
- 在本地发布
custom-b
项目的shadow-jar,让你的主项目依赖于这个jar
如上所述,如果你真的依赖于新版本的B,你应该尝试这个,因为这会引入一些额外的复杂性,如果不是绝对必要的话应该避免。或者,您当然也可以向A的开发人员询问他们是否计划在其即将发布的版本中使用新版本的B.这也可以解决您的问题。
推荐阅读
- CordovaError(无法找到'ANDROID_HOME'环境变量)
- Unity(Android的构建和运行不可用)
- 使用veracode时com.google.android.gms.analytics中的“熵不足(CWE ID 331)”
- Google跟踪代码管理器+ React App =错误的标题
- SearchView在Android应用中泄漏内存
- Android中用于kotlin的静态等价物,以避免处理程序内存泄漏
- [Android活动已泄漏com.android.internal.policy.impl.phonewindow $ decorview问题窗口
- 垃圾收集器没有像在Android应用程序中那样释放“捶打内存”
- Android FFmpeg(对atof,log2和log2f的未定义引用)