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


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

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

    格式:

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

    示例:

    ./gradlew :app:dependencies > deps.txt
    
    • 1

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

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

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

    查看指定环境的依赖信息

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

    例如:

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

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

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

    Configuration 'releaseCompileClasspath' not found in configuration container.
    
    • 1

    示例:
    配置了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 要查找的依赖组件名称
    
    • 1

    示例:

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

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


    build scan

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

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

    在这里插入图片描述

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

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


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

  • 相关阅读:
    Vue (十五) --------- UI 组件库
    Linux —— xshell连接linux虚拟机或服务器操作(上传、下载文件等)
    贷记来帐、借记来帐、贷记往账、借记往账的区别
    jQuery绑定点击事件和及监听改变事件的几种方式以及多个元素绑定多个事件
    后端返回二进制文件,js 下载为xls或xlsx文件
    Kubernetes多租户策略的好处和挑战
    RabbitMQ集群部署
    LabVIEW程序代码更新缓慢
    时序预测 | MATLAB实现基于QPSO-BiGRU、PSO-BiGRU、BiGRU时间序列预测
    Ansible ad-hoc 临时命令
  • 原文地址:https://blog.csdn.net/yuzhiqiang_1993/article/details/127846846