使用Gradle进行依赖统一管理

  • 前言
    • 依赖统一管理使用步骤
    • 第一步:定义versions.gradle文件
    • 第二步:编辑版本内容
    • 第三步:在project的build.gradle进行引用我们新建的versions.gradle文件
    • 第四步:我们进行使用我们做好的依赖管理文件
    • 结语

前言

我们为什么需要对依赖进行统一管理?目的在哪里?

答案不言而喻,当然是便于维护.
场景: 一个项目,为了解耦,封装,扩展,所以会延伸多个module出来.我们每个module中的build.gradle文件会有多个版本控制,版本依赖等等各种,如果项目组人多的情况下,每次新加入一个依赖,都需要考虑版本依赖是否一致的问题,这样下来导致我们的各种成本都会相对应提高,此时如果使用依赖统一管理,我们的同事在使用的时候,只需要找到对应的版本进行添加即可,无需在想版本依赖不一致的情况了,这样对于我们的开发时间以及开发成本会有很大的提高

依赖统一管理使用步骤

  1. 在项目下定义versions.gradle文件,与project的build.gradle文件一级
  2. 在其中进行版本定义
  3. 在project的build.gradle进行引用
  4. 在module的build.gradle使用定义好的内容

第一步:定义versions.gradle文件

右键项目->new->选择Gradle开头的两个选项,定义文件名称,versions.gradle

第二步:编辑版本内容

  1. 声明ext变量
  2. 定义三方库的依赖版本
  3. 定义三方库的完整依赖
/**** 本地依赖配置统一管理* 当前文件需要在全局的build.gradle文件中进行引用**/
ext{/**** 定义是否为module,如果为module,则为true,如果为application,则为false*  我们使用这个属性来控制应用程序是属于module还是application*/isModule = false/*** 此处定义三方库的版本*/versions = [applicationId :"com.xx.xxx",compileSdkVersion : 28,minSdkVersion : 21,targetSdkVersion : 28,versionCode : 1,versionName : "1.0",testInstrumentationRunner : "androidx.test.runner.AndroidJUnitRunner",appcompat: "1.0.2",constraintlayout:"1.1.3",junit:"4.12",runner:"1.1.1",espresso:"3.1.1"]/*** 此处定义三方库的依赖名称*/dependencies = ["appcompat":"androidx.appcompat:appcompat:${versions["appcompat"]}","constraintlayout":"androidx.constraintlayout:constraintlayout:${versions["constraintlayout"]}","junit":"junit:junit:${versions["junit"]}","runner":"androidx.test:runner:${versions["runner"]}","espresso":"androidx.test.espresso:espresso-core:${versions["espresso"]}"]}

第三步:在project的build.gradle进行引用我们新建的versions.gradle文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.
/*** 下面这段代码,就是我们引用进我们新建的版本依赖管理的文件*/
apply from: "versions.gradle"buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:3.5.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {google()jcenter()}
}task clean(type: Delete) {delete rootProject.buildDir
}

第四步:我们进行使用我们做好的依赖管理文件

apply plugin: 'com.android.application'android {compileSdkVersion rootProject.ext.versions.compileSdkVersiondefaultConfig {applicationId rootProject.ext.versions.applicationIdminSdkVersion rootProject.ext.versions.minSdkVersiontargetSdkVersion rootProject.ext.versions.targetSdkVersionversionCode rootProject.ext.versions.versionCodeversionName rootProject.ext.versions.versionNametestInstrumentationRunner rootProject.ext.versions.testInstrumentationRunner}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation rootProject.ext.dependencies.appcompatimplementation rootProject.ext.dependencies.constraintlayouttestImplementation rootProject.ext.dependencies.junitandroidTestImplementation rootProject.ext.dependencies.runnerandroidTestImplementation rootProject.ext.dependencies.espresso
}

结语

以上内容,就是我们的依赖管理的所有内容,所有内容根据自己的项目内容进行统一替换即可使用

Android组件化下依赖统一管理相关推荐

  1. 【Android 组件化】为什么能极大提高工程编译速度?

    为什么需要组件化 极大提高工程编译速度 业务模块解耦,有利于多人团队协作开发 什么是组件化 所谓的组件化就是把需求拆成一个一个的小模块,最后组装需要的模块组成一个app 模块化架构 创建一个 Proj ...

  2. Android - 依赖统一管理

    前言 前段时间自己在搭建组件化框架时候遇到了多人协作 Moudle 版本依赖冲突以及重复导包和同一个包导入不同版本的情况,针对这个问题对依赖统一这块做了一次比较详细的学习和总结 目前Android依赖 ...

  3. 【Android 组件化】使用 Gradle 实现组件化 ( 组件 / 集成模式下的 Library Module 开发 )

    文章目录 一.组件模式下为组件 Module 指定 Java 源码路径 二.主应用的角色 三.BuildConfig 中生成当前 组件 / 集成 模式字段 四.Library Module 中的代码示 ...

  4. 【Android 组件化】路由组件 ( 页面跳转参数依赖注入 )

    文章目录 一.参数自动注入 二.自定义注解 三.使用 @Extra 自定义注解 四.注解处理器解析 @Extra 自定义注解 并生成相应 Activity 对应代码 五.博客资源 组件化系列博客 : ...

  5. android组件化开发视频教程,教你打造一个Android组件化开发框架

    作者简介 本篇来自 lucky_billy 的投稿,分享了他的开源组件化框架,详细地讲解框架形成的思路,希望对大家有所帮助. lucky_billy 的博客地址: 解读开源框架设计思想 B站学习视频 ...

  6. 【Android 组件化】使用 Gradle 实现组件化 ( 组件模式与集成模式切换 )

    文章目录 一.模块化 与 组件化 模式控制 二.applicationId 设置 三.使用 sourceSets 配置组件模式下使用的清单文件 四.组件模式 与 集成模式 切换示例 五.完整的 Gra ...

  7. 教你打造一个Android组件化开发框架

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 CC:Component Caller,一个android组件化开发框架, 已开源,github地址:https://github ...

  8. 单独组件_阿里P8年薪百万大牛-教你打造一个Android组件化开发框架

    作者简介 本篇来自 lucky_billy 的投稿,分享了他的开源组件化框架,详细地讲解框架形成的思路,希望对大家有所帮助. lucky_billy 的博客地址: http://blog.csdn.n ...

  9. Android组件化开发,其实就这么简单

    组件化,在实际的业务开发中,越来越多的会使用这种方式,特别是业务逻辑复杂,功能模块较多的项目,越能凸显出组件化的优点,比如各个模块拆分,使其业务分明,比如耦合度低,组件之间相互独立,再比如编译运行速度 ...

最新文章

  1. shell任务不受意外中断影响的常见方法
  2. RHEL6新特性之联网和服务
  3. gentoo下gnome的抓图功能
  4. T^TOJ - 1251 - 。◕‿◕。TMD - 欧拉函数 - 质因数分解
  5. 漫画 | 苦逼项目是如何诞生的?
  6. android主流技术框架,android开发现在流行什么IDE和开发框架?
  7. java直接读取rar,Java无需解压直接读取Zip文件和文件内容
  8. 【教程】VsCode搭建Java开发环境
  9. 趣学 C 语言(七)—— 文件读写操作
  10. 祝各位朋友元旦快乐,新年大发!!!
  11. 计算机桌面屏保字幕设置,win7系统屏保设置成字幕保护的操作方法
  12. Python飞机大战游戏 附素材及源码
  13. ps 计算机 性能设置,Photoshop 中的性能首选项
  14. Nodejs: redis客户端通过mset方法一次性批量写入多个key的值
  15. python错题集(1)
  16. c++ 栈 stack 用法
  17. CleanMyMac X苹果电脑系统C盘清理软件
  18. 跨平台移动开发平台Flutter环境搭建
  19. mysql查询学生表年龄语句_表是student表-从学生表tstudent-学生表student
  20. Mac OS X: FileVault 2在美洲狮10.8上的扩展

热门文章

  1. H3C路由交换商业产品命名规则汇总
  2. Golang编写简单图片服务器
  3. python中if与elif_python中if和elif的区别
  4. JavaScript 生成流程图
  5. DBeaver21下载与安装教程
  6. MGF病毒最新版本的源代码(V1.30)
  7. easyexcel导出excel 到浏览器,并设置第一行大标题
  8. R语言平均值和加权平均值
  9. 前端开发编辑器大集合,选择困难症的速看
  10. DiskGenius 镜像还原出错 partition size not the same