Gradle 插件获取所有依赖项,类似 androidDependencies?

news2024/11/23 15:41:56

诉求

打包过程中我想知道某个模块的信息,比如:

  • 模块androidx.work:work-runtime是否被依赖?
  • 模块androidx.work:work-runtime的版本号是多少?

我们利用 Android studio 已有的任务androidDependencies,双击执行很容易知道模块的信息,但是我想在 gradle 打包插件里面知道这个信息。根据模块是否存在指定某些操作;拿到模块的版本号判断是否执行某个操作,怎么办呢?

在这里插入图片描述

试探

**不满足需求:**使用这个输出的依赖只有一小部分,依赖不完全

    configurations.all {
        project.configurations.implementation.allDependencies.each { dep ->
            println("依赖项 implementation dependencies:" + dep.group + ":" + dep.name + ":" + dep.version)
        }
    }

在这里插入图片描述

满足需求: 全部依赖,获得的依赖和 androidDependencies 获取的一致

只是这个返回需要一定时间获取依赖项,并且要去重。

    /**
     * 加载所有依赖项
     *
     * @param project
     * @param callback
     */
    static void loadAddDependencies(Project project, DependenciesCallback callback) {
        def dp = new ArrayList()
        project.configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                String module = details.requested.module.group + ":" + details.requested.module.name + ":" + details.requested.version
                if (!dp.contains(module)) {
                    dp.add(module)
                }

                callback.onResult(dp)
            }
        }
    }


还有常用的方法:排除某个模块

    /**
     * 排除模块
     * @param project
     * @param excludeList
     */
    static void excludedDependencies(Project project, List<Pair> excludeList) {
        if (CommUtils.isEmptyOrNoExists(excludeList)) {
            return
        }

        project.configurations.all {
            resolutionStrategy {
                excludeList.each {
                    exclude group: it.first, module: it.second
                }
            }
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyQt5写好的py文件生成可执行的exe文件【Nuitka】

文章目录 1.Nuitka引入2.Nuitka与Pyinstaller对比Nuitka安装 3.Nuitka指令4.参数以及作用5.多文件格式封装完成后可删除文件6.运行问题问题1问题2 1.Nuitka引入 看过我上一篇PyQt5写好的py文件生成可执行的exe文件【Pyinstaller】的应该了解到用PyQt5写的界面程序可以通过Pyins…

安卓冻屏bug案例作业分享-千里马学员wms+input实战作业

背景&#xff1a; 近期有学员反馈在aosp14高版本上有了一个新窗口TaskBar&#xff0c;这个但是有需求就是对这个TaskBar进行隐藏&#xff0c;所以有一个需要对这个TaskBar进行进行隐藏需求 隐藏TaskBar需求做了之后发现有如下bug&#xff1a; 问题复现步骤&#xff1a; 因…

新款示波器RTE1104罗德与施瓦茨RS RTE1102原装二手

罗德与施瓦茨R&S RTE1104触摸屏RTE1102新款示波器 R&S-RTE1000 示波器系列&#xff1a; RTE1022标配&#xff1a;200MHz带宽&#xff0c;2通道&#xff0c;5GSa/s采样率&#xff0c;200M存储深度&#xff0c;16个数字通道&#xff08;选配&#xff09; RTE1032标配&a…

HCIP--以太网交换安全(二)端口安全

端口安全 一、端口安全概述 1.1、端口安全概述&#xff1a;端口安全是一种网络设备防护措施&#xff0c;通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理&#xff1a; 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…

解决PyCharm 2023 Python Packages列表为空

原因是因为没有设置镜像源 展开 > 之后&#xff0c;这里 点击齿轮 添加一个阿里云的源 最后还需要点击刷新 可以选择下面的任意一个国内镜像源&#xff1a; 清华&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&#xff1a;http://mirrors.aliyun.com/…

asp.net core Partial 分部视图、视图组件(core mvc 才支持)、视图、Razor组件 、razor pages

分部视图 》》》传参 》》两个东西换个名称&#xff0c;PartialView()>渲染视图>不带Layout 部分视图与普通视图没太大区别&#xff0c;它可以将重复使用的HTML内容结合起来&#xff0c;可以单独使用。 一般命名是在名称前面加下划线&#xff0c;放在/Views/Shared 目…

【cocos creator】输入框滑动条联动小组建

滑动条滑动输入框内容会改变 输入框输入&#xff0c;滑动条位置改变 const { ccclass, property } cc._decorator;ccclass() export default class SliderEnter extends cc.Component {property({ type: cc.Float, displayName: "最大值", tooltip: "" }…

基于Web的停车场管理系统(论文+源码)_kaic

摘要 我国经济的发展愈发迅速&#xff0c;车辆也随之增加的难以想象&#xff0c;因此车位的治理也越来越繁杂&#xff0c;为了方便停车位相关信息的管理&#xff0c;设计开发一个合理的停车位管理系统尤为重要。因而&#xff0c;具有信息方便读取和操作简便的停车位管理系统的设…

Java基础-知识点

文章目录 数据类型包装类型缓存池 String概述不可变的含义不可变的好处String、StringBuffer、StringBuilderString.intern() 运算参数传递float与double隐式类型转换switch 继承访问权限抽象类与接口super重写与重载**1. 重写(Override)****2. 重载(Overload)** Object类的通用…

H3C GRE over IPsec VPN 实验

H3C GRE over IPsec VPN 实验 实验拓扑 ​​ 实验需求 某企业北京总部、上海分支、武汉分支分别通过 R1,R3,R4 接入互联网,配置默认路由连通公网按照图示配置 IP 地址,R1,R3,R4 分别配置 Loopback0 口匹配感兴趣流,Loopback1 口模拟业务网段北京总部拥有固定公网地址…

VMware Fusion 13.6.1 发布下载,修复 4 个已知问题

VMware Fusion 13.6.1 发布下载&#xff0c;修复 4 个已知问题 VMware Fusion 13.6.1 for Mac - 领先的免费桌面虚拟化软件 适用于基于 Intel 处理器和搭载 Apple 芯片的 Mac 的桌面虚拟化软件 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-fusion-13/ 查看最新…

找不到xinput1_3.dll怎么解决,快来试试这个几个方法

在计算机系统运行过程中&#xff0c;当我们遭遇“找不到xinput1_3.dll”这一错误提示时&#xff0c;实际上正面临一个软件兼容性、系统组件缺失以及游戏或应用程序无法正常启动的关键问题。深入探究这一现象&#xff0c;我们会发现它可能引发一系列连带问题&#xff0c;例如某些…

【课程设计/毕业设计】Java家政预约管理系统源码+开发文档

项目介绍 一直想做一款家政管理系统&#xff0c;看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。学习过程中遇到问题可以咨询留言。 在线体验 http://jiazheng.gitapp.cn/ 源码地址 https://github.com/geeeeeeeek/java_jiazh…

JVM和GC案例详解

接上文JVM环境配置说明&#xff1a;上文博客 一、JVM远程连接设置 1. JMX方式连接(这种方式没有GC监控)&#xff0c;设置如下 2. 连接成功后可以查看基础配置参数(和服务器配置一致) 2. jstatd方式连接(这种方式没有CPU监控) 添加jstatd方式连接 双击Tomcat&#xff0…

python可变数据类型和不可变数据类型

先看一段代码。 value1 10 value2 value1 print(value1) print(value2) value1 30 print(value1) print(value2)再看另一段代码。 list1 [1,2,3,4] list2 list1 print(list1) print(list2) list1.append(5) print(list1) print(list2)第一段代码中&#xff0c;value2的值…

深入解析:如何使用LangChain进行RAG处理半结构化数据

深入解析&#xff1a;如何使用LangChain进行RAG处理半结构化数据 引言 在处理半结构化数据如PDF文件时&#xff0c;如何有效提取信息是一个挑战。本文将介绍如何使用LangChain的RAG处理模板处理这样的数据。我们将探讨安装、使用和在项目中集成的完整过程。 主要内容 环境设…

FLBOOK一款强大的电子产品图册制作工具

随着科技的飞速发展&#xff0c;电子产品已经成为我们生活中不可或缺的一部分。为了让消费者更好地了解产品特性、功能及优势&#xff0c;电子产品图册的制作显得尤为重要。今天&#xff0c;我要向大家介绍一款强大的电子产品图册制作工具——FLBOOK。 一、FLBOOK简介 FLBOOK是…

芜湖儿童自闭症寄宿制学校:为孩子打开未来大门

在探索自闭症儿童教育的广阔领域中&#xff0c;寄宿制学校以其独特的教育模式和全面的关怀体系&#xff0c;为自闭症儿童及其家庭带来了新的希望与可能。虽然本文聚焦于芜湖儿童自闭症寄宿制学校的概念&#xff0c;但让我们以广州星贝育园自闭症儿童寄宿制学校为具体实例&#…

登顶!智源BGE首开国产模型Hugging Face月度下载全球第一

BGE&#xff08;BAAI General Embedding&#xff09;系列模型是北京智源人工智能研究院研发的开源通用向量模型&#xff0c;该模型专为各类信息检索及大语言模型检索增强应用而打造。 自2023年8月发布首款模型BGE v1&#xff0c;历经数次迭代&#xff0c;BGE已发展为全面支持“…

百度下拉框出词技术解密:72小时出下拉词软件原理分享

如何才能刷下拉词&#xff1f;这个问题一直是企业做流量时最纠结的问题&#xff0c;百度下拉词作为百度搜索体验中的一项智能化功能&#xff0c;极大地方便了用户快速完成搜索&#xff0c;也成为了企业在搜索引擎优化&#xff08;SEO&#xff09;策略中的重要流量入口。通过研究…