[英]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 版本。 那是:
custom-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.