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

本文介绍了如何使用Gradlew命令来管理Android项目的依赖信息,包括输出模块依赖到文件、查看特定环境的依赖、定位特定版本依赖来源,以及使用build scan获取详细构建信息。通过这些方法,可以有效地解决依赖版本冲突和分析项目依赖结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

格式:

./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

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

在这里插入图片描述

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

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


感谢阅读,如果对你有帮助请点赞支持。有任何疑问或建议,欢迎在评论区留言讨论。如需转载,请注明出处:喻志强的博客

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XeonYu

码字不易,鼓励随意。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值