记录在处理复杂的依赖关系时,学到的知识。

依赖关系的记录

场景:

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 协议 ,转载请注明出处!

2024开工大吉 下一篇