首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android Gradle 插件】Gradle 依赖管理 ④ ( Android Gradle 插件中注册的依赖分组 | implementation | api | compileOnly )

文章目录 一、Android Gradle 插件中注册的依赖分组 二、弃用的依赖分组 ( 现在仍然兼容 ) Android Plugin DSL Reference 参考文档 : Android Studio.../studio/build/dependencies Android Gradle 插件配置与 Gradle 配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project...参考文档 : https://developer.android.google.cn/studio/build/dependencies 一、Android Gradle 插件中注册的依赖分组 -...--- 添加构建依赖项 参考文档 : https://developer.android.google.cn/studio/build/dependencies 二、弃用的依赖分组 ( 现在仍然兼容...分组 : 只对 依赖 进行编译操作 , 该 依赖 不参与 打包 ; 上述是已经弃用的 配置依赖项 的分组 :

55910

【Android Gradle 插件】Android 依赖管理 ④ ( 常用依赖配置分析 | implementation 依赖作用 | api 依赖作用 | compileOnly 依赖作用 )

B 依赖库 , 最终 B 依赖库会打包到 A 项目的 Apk 文件中 ; 如果 C 项目 依赖 A 项目 , 由于 compile 配置会 传递依赖 , C 项目也需要将 B 依赖库导入到自己的依赖中...非常低 , 构建时会 不停的检查依赖树 , 发现依赖传递后 , 还要 添加依赖的依赖 ; 二、implementation 依赖作用 ---- implementation 依赖作用 : 编译打包 :..., C 项目是不知道 A 项目的 B 依赖库的 , 也无法访问 B 依赖库 ; 如果使用 compile 或者 api 添加依赖 , 则会有大量的依赖传递 , 构建效率 会 非常低 , 构建时会 不停的检查依赖树..., 发现依赖传递后 , 还要 添加依赖的依赖 ;因此 这两个 依赖方式 不常用 , implementation 依赖是当前最常见的依赖方式 ; 三、api 依赖作用 ---- api 依赖作用 :...; compileOnly 依赖 的作用与 已废弃的 provided 依赖 类似 , 都是 将依赖库添加到编译路径中 ; 在 根目录的 build.gradle 顶层构建脚本 中的 buildScript

2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    微服务信息同步方案(数据依赖一致性问题)

    背景 微服务场景下需要同步信息的场景。 还是前文的栗子: 如下微服务 支付服务:负责完成支付操作,其中有支付流水数据。 账单服务:指定时间生成账单给用户,其中有账单流水数据。...此时产品上有个需求,在支付管理端根据是否出账搜索支付流水,而出账是账单服务的功能。所以这里涉及到信息的同步,那么,我们怎么保证同步一定能成功呢(最终一致性)。...生产者 主要是发送消息到队列这步的可靠性考量 方案一:浅尝辄止 以递增的时间间隔重试5次。如果失败了,上报到日志和告警,人工介入。同时,具体业务准备好重试的脚本。根据实时的情况进行处理。...优点: 可靠性会比一高很多,在消息队列故障30分钟这种场景下,也能自动恢复,可以做成包的方式。 具有比较强的通用型 缺点: 增加了和磁盘打交道的逻辑,引入了文件io。...同时,如果服务也挂了,还是得依赖上报。(当然,上报也可能挂了) 限制: 消息处理需要遵循触发-查询机制 以上方案中,三,四基本能解决重试阶段写入消息队列的可靠性问题。

    1.1K30

    【Android Gradle 插件】Gradle 依赖管理 ⑥ ( dependencies 依赖查找路径 | dependencies 依赖冲突 | dependencies 依赖库层级分析 )

    Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★...工程中 , 配置的 依赖 , 有 2 种查找依赖包的方式 , 方式一 : 到根目录中配置的 google , mavenCentral , jcenter 远程仓库中查找依赖库 ; allprojects...函数库 ; 在上一篇博客 【Android Gradle 插件】Gradle 依赖管理 ⑤ ( dependencies 依赖项拆分 | 依赖组 | 依赖名称 | 依赖版本号 | 动态指定依赖版本号...| 使用命令行查看模块 ) 中介绍了如果配置了两个相同的依赖 , 则选取较高版本的依赖库 , 因此原理上 , 不会出现依赖冲突问题 ; 三、dependencies 依赖库层级分析 ---- 分析依赖问题..., 与依赖库的依赖库之间的依赖关系 ; com.android.support.constraint:constraint-layout:2.0.1 是顶层依赖库 , +--- com.android.support.constraint

    1.7K40

    【Android Gradle 插件】Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 )

    四、通过 configuration 配置排除子依赖库 五、force 强制指定依赖库 一、查询 Android 依赖库的配置 ---- 在遇到 依赖冲突 时 , 如果要 排查某个依赖的子库 时 ,...依赖库 为例进行演示 , 这个库经常会造成依赖冲突 ; Android 官方提供的依赖库 , 都放在 SDK 的 extras 目录 下 , 如下图所示 : 其中 Android Support...---- 针对依赖库冲突 : 依赖库 A 中 , 包含了 B , C 分库 , 它们的 所有版本都是 1.0 版本 , 这两个分库是无法分开的 ; 应用突然 单独的依赖了 2.0 版本的 B 依赖库..., 这就 出现了冲突 , 此时就会 引入了两个版本的 B 依赖库 , 导致了冲突 ; 在依赖库中 , 可以将其中的某个依赖库剔除 , 如 androidx.appcompat:appcompat 依赖库中...* * 排除特定的可传递依赖项并不保证它不会出现 * 在给定配置的依赖性中。 * 例如,没有任何排除规则的某些其他依赖项, * 可能会引入完全相同的传递依赖关系。

    3.4K31

    等离子清洗机中射频等离子体的工作机理

    在现代科技的推动下,等离子体技术在各个领域中扮演着重要角色。而PLUTO-T型等离子清洗机作为其中的一员,其独特的工作机理使其成为清洗领域的一颗璀璨明星。...PLUTO-T型等离子清洗机采用射频等离子体来进行清洗工作。射频等离子体是一种高能离子化的气体,具有高温、高能的特点。其工作原理基于电离和化学反应的相互作用,通过释放大量能量来清洗物体表面。...具体来说,PLUTO-T型等离子清洗机中的射频等离子体是通过一个射频发生器产生的。该发生器会产生高频电场,将气体离子化并加热,形成高温高能的等离子体。...这些等离子体被喷射到待清洗的物体表面,通过碰撞和化学反应来去除表面的污垢和污染物。射频等离子体清洗的过程中,有两个主要的作用机制。...其工作机理的独特性使其能够应对不同类型的物体和污染物,具备广泛的适应性和应用前景。总而言之,PLUTO-T型等离子清洗机中射频等离子体通过离子轰击和化学反应的双重

    31920

    【Android Gradle 插件】Gradle 依赖管理 ⑧ ( implementation fileTree 引入jar文件依赖 | implementation files 引入文件依赖 )

    文章目录 一、implementation fileTree 引入目录下的文件作为依赖 二、implementation files 引入目录下的文件作为依赖 Android Plugin DSL Reference...【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★...docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/Test.html LibraryExtension ( Library 依赖库的....jar 后缀的文件添加到依赖中 ; dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') } fileTree.../current/javadoc/org/gradle/api/Project.html#fileTree-java.lang.Object- 二、implementation files 引入目录下的文件作为依赖

    2.2K10

    【Android Gradle 插件】Gradle 依赖管理 ⑦ ( dependencies 传递依赖设置 | transitive 关闭依赖传递配置 | exclude 排除子依赖配置 )

    Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★ Android..., 执行 gradlew :app:dependencies 命令 , 可以打印出依赖库以及依赖库的依赖库层级 , +--- com.facebook.fresco:fresco:0.14.0 |...:fresco:0.14.0', { transitive false } } 在依赖后 , 增加一个闭包 , 使用逗号隔开 , 在闭包中配置 transitive false 选项 , 即不解析该依赖的子依赖...; 进行了上述设置后 , 调用 fresco 函数库肯定会出现问题 ; 三、exclude 排除子依赖配置 ---- 设置 exclude 属性 , 可以排除依赖库的某个子依赖 , 并且在外部进行依赖...', module:'support-core-utils') } // 外部单独添加被排除的 com.android.support:support-core-utils:24.2.1 依赖库

    96020

    【Android Gradle 插件】Android 依赖管理 ② ( 为工程配置依赖仓库 | 为工程构建添加依赖仓库 | classpath 引入依赖库 | 配置依赖仓库 )

    文章目录 一、为工程配置依赖仓库 二、为工程构建添加依赖仓库 三、classpath 引入依赖库 四、配置依赖仓库 一、为工程配置依赖仓库 ---- 在 根目录 的 build.gradle 顶层构建脚本...---- 上个章节介绍的 " 为工程添加依赖仓库 “ 与 ” 为工程构建添加依赖仓库 " 是两个完全不同的概念 ; 这里引入两套概念 : 构建系统 : Gradle 构建过程中需要使用 仓库 和 依赖..., 但是工程中并不依赖这些内容 ; 工程系统 : 工程中 配置的仓库 和 依赖 , 在代码中调用了这些依赖库的函数 ; 在根目录 build.gradle 顶层构建脚本 中 , buildscript...4.2.1” , 这是 Google 开发的 Android Gradle Plugin 自定义插件 , 仅在构建过程中使用 , 显然 该依赖库 不需要打包到 Apk 安装包中 , 工程运行并不需要 AGP...插件 ; 使用 classpath 引入依赖库 , 只会将依赖库添加到编译构建过程中 , 不会打包到 Apk 中 ; 四、配置依赖仓库 ---- 在 根目录 build.gradle 顶层构建脚本 中

    1.6K10

    【Android Gradle 插件】Android 依赖管理 ⑤ ( Gradle 依赖优化 | 命令行查看依赖模块 | 依赖冲突问题 | 依赖传递冲突 | 分库冲突 | 依赖分组不同导致冲突 )

    ---- 1、依赖传递冲突 依赖传递冲突 : 在依赖配置中 , 可能存在这种情况 , 应用中引入了第三方库 A , A 存在 B 依赖库的 1.0 版本依赖 , 同时应用中又导入了 B 依赖库的 2.0...这就导致了依赖冲突 ; 这是由于程序传递 , 导致的程序间依赖库不兼容 的 依赖冲突问题 ; 这是由于依赖版本不同导致的依赖冲突 ; 2、分库冲突 依赖库可能存在分库 , 如 : 依赖库 A 中 , 包含了...B , C 分库 , 它们的所有版本都是 1.0 版本 ; 这两个分库是无法分开的 ; 应用突然 单独的依赖了 2.0 版本的 B 依赖库 , 这就出现了冲突 , 此时就会引入了两个版本的 B 依赖库..., 导致了冲突 ; 这是由于依赖版本不同导致的依赖冲突 ; 3、赖分组不同导致冲突 在之前开发中使用的是 support 依赖库 , 但是新版本的 Android 开发时使用 androidx 依赖库..., 这就导致了冲突 ; 这是由于依赖分组不同导致的依赖冲突 ; 4、解决思路 依赖冲突的本质是 一个类 出现了 两次 , 而且所处的依赖库的版本不同 , 或者 依赖分组不同 ; 通过排除依赖或者强制指定依赖

    2.9K30

    【Android Gradle 插件】Gradle 依赖管理 ③ ( build.gradle#dependencies 依赖分组 | configurations 自定义依赖分组 )

    参考文档 : Android Gradle 插件配置与 Gradle 配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project...配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★ Android Gradle 插件文档主页 : https://google.github.io/android-gradle-dsl...docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/Test.html LibraryExtension ( Library 依赖库的...---- Gradle 依赖是分组的 , 分组是在 org.gradle.api.Project 中的 configurations 中配置的 , 如 " implementation " , " compile...中使上述在 configurations 配置的依赖分组 hello , dependencies { hello 'com.android.support:appcompat-v7:28.0.0'

    55020

    【Android Gradle 插件】Android 依赖管理 ① ( 依赖库匹配 | 依赖库查找顺序及路径 | Gradle 资源库 )

    依赖库名称为 appcompat , 依赖库版本号为 1.3.1 , 三者由冒号隔开 ; 二、依赖库查找顺序及路径 ---- Android 依赖库查找路径 : 首先 , 查找 本地的 Gradle...缓存依赖库 , 如果找到则直接使用该依赖库 , 进行 Gradle 构建 ; 本地依赖库的缓存路径为 " C:\Users\用户名.gradle\caches\modules-2\files-2.1 "..., 如下图所示 , Gradle 构建过程中 , 如果发现本地没有缓存依赖库 , 则自动将依赖库缓存到该目录中 ; 下图中的 Gradle 依赖缓存目录为 C:\Users\octop.gradle\...: 三、Gradle 资源库 ---- Gradle 构建过程中 , 存储依赖库的地方称为 Gradle 资源库 , 有两种形式 : 本地库 : 一般是 " C:\Users\用户名.gradle...Maven 私服地址 ; Gradle 构建时 , 定位依赖库的过程 , 叫做 依赖解析 ; 首先 , 查找本地库 ; 然后 , 查找远程库 ; 依赖解析完毕后 , 如果是在远程库中下载的依赖库 ,

    1.2K10

    【Android Gradle 插件】Gradle 依赖管理 ⑨ ( implementation project 导入依赖库 Module | 导入aar文件作为依赖 | 先配置仓库再导入依赖 )

    文章目录 一、implementation project 引入 Android Library 类型的 Module 作为依赖库 二、引入 aar 文件作为依赖 Android Plugin DSL...配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联...docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/Test.html LibraryExtension ( Library 依赖库的...aar 文件都需要指定一个 pom 文件 , 用于指定该 aar 有哪些依赖 ; 该 percent-22.2.0.aar 对应的 pom 文件 percent-22.2.0.pom 如下 : 该 aar...包依赖 com.android.support 组下的 support-v4 函数库 , 版本号为 22.2.0 ; <?

    1.5K20

    等离子清洗机中氧等离子体刻蚀对石墨涂层的性能研究

    在氧等离子体轰击石墨涂层的过程中,基本的反应就是,氧等离子和石墨涂层中的表层C原子发生氧化反应,不论是生成了CO2或者CO,在等离子清洗机的反应腔内,是属于一种真空状态,所以反应的气体就会被抽离真空反应腔...,而相反各项异性水平刻蚀机制是指的是在同时刻蚀缺陷的情况下,氧等离子体刻蚀会优先寻找下层的缺陷在上层石墨涂层的缺陷被刻蚀的同时氧等离子体会优先寻找下层石墨涂层的缺陷,对于整体的石墨涂层陷刻蚀速率远大于非缺陷处的刻蚀速率...结论氧等离子刻蚀石墨涂层会使得上层石墨涂层的缺陷扩大,边界分离,粗糙度降低,还在一定程度上会给顶层的石墨涂层引入新的缺陷,这些结构变化会对石墨涂层的其他性能产生一定程度的影响,同时一定程度上证明了氧等离子刻蚀石墨涂层的刻蚀机制是一种各向异性的垂直刻蚀机制...,在这种刻蚀机制的刻蚀下,石墨涂层的氧等离子刻蚀是属于层-层-层的刻蚀,而且在接近单层刻蚀的时候,刻蚀速率降低,石墨涂层底层的缺陷也不会扩大会得到很有效的控制和保证石墨涂层的完整性,从理论上说经过可控的等离子射频功率...,等离子体的流量,一定程度上可以制备出可控缺陷的石墨涂层。

    29420

    【Android Gradle 插件】Gradle 依赖管理 ⑤ ( dependencies 依赖项拆分 | 依赖组 | 依赖名称 | 依赖版本号 | 动态指定依赖版本号 | 使用命令行查看模块 )

    配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联...docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/Test.html LibraryExtension ( Library 依赖库的...implementation 'com.example.android:app-magic:latest.integration' } 注意这里不推荐使用动态版本号 , 因为在编译程序时 , 不同版本的依赖..., 可能有不同的表现 , 如果后期依赖库更新 , 可能导致之前的版本无法使用 ; 如果在 dependencies 配置了多个相同的依赖 , 那么会使用最高版本的依赖 ; dependencies {...---- 执行 gradlew :app:dependencies 命令 , 即可查看当前的 app Module 模块的依赖项 ;

    1.9K10

    锂离子带给动力电池的「爱与恨」

    目前各国科学家及研发机构也在寻找克服锂离子电池缺陷的解决方法,改善使用痛点。 短路的元凶究竟是谁? 锂离子电池最早由索尼在1991年推出,其原理是依靠离子在电极间运动产生能量。...与其优点比起来,锂离子电池的缺点很少,但是每个缺点都十分致命。 这其中严重的,就是锂离子电池内部的枝晶。电动汽车由于电池自燃引发的事故比比皆是,而自燃的主要原因,就是电池内短路。...不过与锂相比,钠更重,制成的钠离子电池储能能力也不如锂离子电池。 换种方式,继续使用锂 除了锂离子电池,现在也有研究机构在研发锂金属电池。...与锂离子电池不相同的是,锂金属电池采用金属锂作为负极,依靠金属锂的氧化反应产生电能;而锂离子电池使用石墨作为负极,以含锂化合物作为正极,依靠锂离子不断获得、失去电子来实现电能传输。...与锂离子电池不同,锂金属电池中的锂离子获得电子后,直接以金属锂颗粒的形式,附着在负极上,从而形成枝晶状图案。

    46130

    离子注入工艺的设计与计算

    介绍工艺之前,我们先聊一下昨天一个朋友提到的日本日新的离子注入设备。日本日新是全球3大离子注入设备商之一。 1973年的时候,该公司就开始做离子注入的工艺设备。 目前的主要业务设备如上表。...详细的可以去它主页了解。 重点介绍激光领域用到的一款设备: 主要是注入H离子用的,可以达到400KeV的H+离子注入。...日新株式会社将在扬州经济技术开发区投资兴建离子注入机设备生产厂。 离子注入工艺参数 00 离子注入就像上图一样,把离子砸到晶圆中。涉及到使用的力度、数量、角度,砸进去的深度等。...因此在一锅Plasma中,一价的离子是最多的。 一般的离子注入机都有电荷的能力,原理大家可以想象高中学的什么库仑作用力吧,带的电荷不同,电磁场中获得的动量不同。...如果我们只知道需要掺杂的剂量,和离子能量,如何计算注入离子在靶材中的浓度和深度 例如一个140KeV的B+离子,注入150mm的6寸硅片上,注入剂量Q=5*1014/cm2,衬底浓度2*1016

    2.4K20

    【Android Gradle 插件】Android 依赖管理 ③ ( dependencies 依赖配置 | Project#dependencies 函数分析 | 自定义依赖配置 )

    依赖配置范围 ---- Gradle 构建过程 中 , 依赖的 作用范围 是不同的 , 如 : 有的依赖只在 源码编译时使用 , 如 Android Gradle 插件 依赖 ; 有的依赖只在 开发时单元测试运行..., 如 单元测试依赖 ; 有的依赖需要 编译打包到 Apk 文件中 , 如 工程中的依赖库 ; 依赖配置 的 作用范围 是可以自定义的 , 在 Gradle 构建工具中 , 内置了如下几种依赖配置项..., 在 【Android Gradle 插件】Gradle 依赖管理 ⑩ ( dependencies 依赖配置项 configurations ) 博客中 , 提到了在 dependencies 依赖配置中..., Android Gradle Plugin 插件 和 Gradle 官方默认配置好了一批依赖配置项 , 如 implementation api compileOnly runtimeOnly annotationProcessor...【Android Gradle 插件】Gradle 依赖管理 ③ ( build.gradle#dependencies 依赖分组 | configurations 自定义依赖分组 ) , 依赖配置

    1.1K10
    领券