繁体   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