记录在处理复杂的依赖关系时,学到的知识。
依赖关系的记录
场景:
A依赖B, B依赖C,依赖方式为implementation
其中A为app,B、C为library
首先他们都是通过gradle进行编译,并发布到maven。
有如下特征:
1、B编译成的aar中并无C的代码
2、A打印依赖树时可以知道B依赖C
那么这个依赖关系是如何记录的呢,反正在aar文件中是没有的。
最后发现,是因为maven中的POM文件,其中说明了该项目的依赖方。
依赖版本不一致的处理
场景:
依赖方式为implementation
A依赖B, B依赖C,其中C的版本为V1
A依赖D, D依赖C,其中C的版本为V2
其中A为app,B、C、D为library
那么最后编译A,A中的C版本为V2。
这是因为gradle检测到不一致的两个版本时,会自动对低版本库进行升级。
参考 https://blog.csdn.net/xiaozeiqwe/article/details/119041121
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!