Android 查看项目的依赖信息以及某个版本的组件是哪个依赖库里的正确姿势

最近在整理项目中的依赖信息,查看依赖信息的方式也挺多的,这里只说一下个人觉得比较好用方式:

将指定模块的全部依赖信息输出到指定文件中

格式:

./gradlew :模块名:dependencies > 文件名.txt

示例:

./gradlew :app:dependencies > deps.txt

任务执行完毕后会生成一个你指定命名的txt文件,里面内容非常多,把所有环境的依赖都给你列出来了,非常多,我们一般只需要关心以下几个

  • debugRuntimeClasspath debug运行时依赖
  • debugCompileClasspath debug编译时依赖
  • releaseRuntimeClasspath release运行时依赖
  • releaseCompileClasspath release编译时依赖

然后去查看对应的依赖信息即可。

查看指定环境的依赖信息

上面那种方式输出的干扰信息太多,我们可以指定只输出某个环境的依赖

例如:

./gradlew app:dependencies > deps.txt  --configuration releaseCompileClasspath       

此时就只会把releaseCompileClasspath的依赖输出到txt中了。

但是如果你配置了productFlavors,直接执行上面的命令会报错误,提示找不到releaseCompileClasspath

Configuration 'releaseCompileClasspath' not found in configuration container.

示例:
配置了productFlavors
在这里插入图片描述
报错提示:
在这里插入图片描述

原因也比较简单,因为环境名称变了,把releaseCompileClasspath 变更为带productFlavors前缀的即可,如prdReleaseCompileClasspath
示例:
在这里插入图片描述

查看某个版本的依赖是哪个库带进来的

还有一种需求是我想看一下某个版本的依赖是哪个库带进来的
举个例子,我项目中依赖的kotlin版本是1.6.21,但是发现最终运行时依赖的版本是1.7.10,那肯定是我依赖的某个组件内部依赖的版本是1.7.10,导致最终实际依赖的版本不是1.6.21,而是1.7.10,此时,我想确认一下是哪个组件内部依赖了1.7.10版本的kt。

有两种方式

方式一

首先第一步还是先把整体的依赖拉出来,注意这里需要使用运行时环境的依赖信息。
然后直接搜关键字例如kotlin:kotlin-stdlib:1.7.10

在这里插入图片描述

找到后往上找他的父级是谁,根据蓝色的±–去判断父级就行
在这里插入图片描述

发现是androidx.appcompat:appcompat:1.5.1内部依赖了org.jetbrains.kotlin:kotlin-stdlib:1.7.10

然后去 mvnrepository 仓库中搜一下指定库确认一下
在这里插入图片描述

可以看到androidx.appcompat:appcompat:1.5.1中确实依赖了1.7.10版本的kotlin-stdlib

方式二

通过命令打印出指定版本的依赖存在于哪些库中

格式

 ./gradlew 模块名:dependencyInsight > 文件名.txt --configuration 环境 --dependency 要查找的依赖组件名称

示例:

 ./gradlew app:dependencyInsight > kotlin.txt --configuration prdReleaseRuntimeClasspath --dependency kotlin:kotlin-stdlib

结果如下,也能找到是androidx.appcompat:appcompat:1.5.1 中依赖了kotlin-stdlib:1.7.10
在这里插入图片描述


build scan

执行./gradlew build --scan 命令,根据提示输入yes

在这里插入图片描述
会把项目的构建信息生成为一个网页链接
在这里插入图片描述
点击链接会首次会让你输入邮箱,等一会会给你发个邮件

在这里插入图片描述

点击邮箱中的链接,可以查看到非常详细的构建信息,这里我们只看一下依赖模块
在这里插入图片描述
以及指定依赖库内部又依赖了哪些东西
在这里插入图片描述

好了,就这些,基本上这几种方式就可以解决绝大部分场景下的获取依赖关系以及版本的问题了,希望能帮到你。


如果你觉得本文对你有帮助,麻烦动动手指顶一下,可以帮助到更多的开发者,如果文中有什么错误的地方,还望指正,转载请注明转自喻志强的博客 ,谢谢!

猜你喜欢

转载自blog.csdn.net/yuzhiqiang_1993/article/details/127846846