Java Gradle依赖关系管理:如何在android项目中维护旧版本和新版本的依赖关系?
我目前在我的一个android项目中面临着一种情况 情况是: 项目使用库A和B(新版本)。库A也依赖于库B(旧版本)。A和B都是独立维护的,它们的发布不能同步 旧库B和新库B的版本不兼容,因为新版本中的某些接口定义已更改。我认为这将在建设项目时产生一些问题Java Gradle依赖关系管理:如何在android项目中维护旧版本和新版本的依赖关系?,java,android,gradle,build,android-gradle-plugin,Java,Android,Gradle,Build,Android Gradle Plugin,我目前在我的一个android项目中面临着一种情况 情况是: 项目使用库A和B(新版本)。库A也依赖于库B(旧版本)。A和B都是独立维护的,它们的发布不能同步 旧库B和新库B的版本不兼容,因为新版本中的某些接口定义已更改。我认为这将在建设项目时产生一些问题 在我的android项目中,维护A和B的最佳方式是什么?如评论中所述,您的问题没有现成的解决方案,您最好的选择可能是让您的项目使用库A使用的库B的旧版本 只有当您真正依赖于仅在新版本B中可用的功能或修复程序时,才可以尝试使用重新定位的软件包来
在我的android项目中,维护A和B的最佳方式是什么?如评论中所述,您的问题没有现成的解决方案,您最好的选择可能是让您的项目使用库A使用的库B的旧版本 只有当您真正依赖于仅在新版本B中可用的功能或修复程序时,才可以尝试使用重新定位的软件包来构建您自己的库B版本。即:
- 使用新版本的b作为依赖项,创建一个新项目,例如
custom-b
- 应用影子插件并将B类重新定位到另一个包中。例如,包
可以变成com.library.b
custom-b.com.library.b
- 在本地发布
项目的shadowjar,并使您的主项目依赖于此jarcustom-b
如上所述,如果您真的依赖于新版本的B,那么您应该只尝试这种方法,因为这会引入大量额外的复杂性,如果不是绝对必要的话,应该避免这种情况。或者,您当然也可以询问A的开发人员,他们是否计划在即将发布的版本中使用新版本的B。这也可能解决您的问题。除非A和B具有不同的工件ID,并且使用完全不同的Java包,否则您想要的是不可能的。挑一个用它。哦,好的!:(非常感谢你的答复。