目前大多数app的架构方式都是采用的模块化开发,但是模块化开发过程中或多或少会碰到一些gradle依赖问题,今天的博客就是用来解决这个问题,很久没有写blog了,今天其实也不是很有心情,最近烦心的事太多了。

希望今天这篇博客能帮到你们,实际上也是帮我自己。

项目目录下公用gradle文件:


ext{testImplementation_dependency=[junit:'junit:junit:4.12',]androidTestImplementation_dependency=[junit1:'androidx.test.ext:junit:1.1.1',espresso_test: 'androidx.test.espresso:espresso-core:3.2.0',]common_dependency=[appcompat: 'androidx.appcompat:appcompat:1.1.0',constraintlayout: 'androidx.constraintlayout:constraintlayout:1.1.3',room: 'androidx.room:room-runtime:2.2.5',rxjava3: 'io.reactivex.rxjava3:rxjava:3.0.4',rxandroid3: 'io.reactivex.rxjava3:rxandroid:3.0.0',// 基础依赖包,必须要依赖immersionbar: 'com.gyf.immersionbar:immersionbar:3.0.0',// fragment快速实现(可选)immersionbar_Components:'com.gyf.immersionbar:immersionbar-components:3.0.0',arouter:'com.alibaba:arouter-api:1.5.1',retrofit: 'com.squareup.retrofit2:retrofit:2.9.0',converter_gson: 'com.squareup.retrofit2:converter-gson:2.9.0',adapter_rxjava2 :'com.squareup.retrofit2:adapter-rxjava3:2.9.0',/*rxlifecycle: 'com.trello.rxlifecycle2:rxlifecycle:2.2.2',rxlifecycle_components: 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.2',lifecycle_extensions: 'android.arch.lifecycle:extensions:1.1.1',lifecycle_compiler : 'android.arch.lifecycle:compiler:1.1.1',*/lifecycle:'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha02',autodispose: 'com.uber.autodispose:autodispose:1.1.0',autodispose_android_archcomponents:'com.uber.autodispose:autodispose-android-archcomponents:1.1.0',refresh:'com.scwang.smart:refresh-header-material:2.0.3',refreshkernel:'com.scwang.smart:refresh-layout-kernel:2.0.3',recyclerview:  "androidx.recyclerview:recyclerview:1.2.0-beta02",basequickAdapter:'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.1',]annotation_processor=[arouter:'com.alibaba:arouter-compiler:1.5.1',lifecycle: 'androidx.lifecycle:lifecycle-compiler:2.0.0',room:  'android.arch.persistence.room:compiler:2.2.5']
}

项目下build.gradle文件编写:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: "common.gradle"
buildscript {repositories {google()jcenter()maven { url "https://jitpack.io" }}dependencies {classpath 'com.android.tools.build:gradle:4.0.2'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {google()jcenter()maven { url "https://jitpack.io" }}
}task clean(type: Delete) {delete rootProject.buildDir
}

模块下build.gradle文件编写方式:

apply plugin: 'com.android.library'android {compileSdkVersion 29buildToolsVersion "29.0.2"defaultConfig {minSdkVersion 23targetSdkVersion 29versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"consumerProguardFiles 'consumer-rules.pro'javaCompileOptions {annotationProcessorOptions {arguments = [AROUTER_MODULE_NAME: project.getName()]}}}compileOptions {sourceCompatibility 1.8targetCompatibility 1.8}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'buildConfigField("boolean","MODIFY_FONT_SIZE","true")}debug {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'buildConfigField("boolean","MODIFY_FONT_SIZE","false")}}dataBinding{enabled true}}def common_dependency=this.rootProject.ext.common_dependency
def testImplementation__dependency=this.rootProject.ext.testImplementation_dependency
def androidTestImplementation_dependency=this.rootProject.ext.androidTestImplementation_dependency
def annotation_processor=this.rootProject.ext.annotation_processor
dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])api project(':commonbasemodule')api project(':httpmodule')implementation project(path: ':utilmodule')testImplementation__dependency.each{k,v->testImplementation v}androidTestImplementation_dependency.each{k,v->androidTestImplementation v}common_dependency.each{k,v->implementation v}annotation_processor.each{k,v->annotationProcessor v}
}

这样这个项目用到的哪些第三方依赖库一看就一目了然,而且版本号都一致,这就是目的。

这篇文章确实有实际意义,所以我才在这里记录下来,衷心希望能帮到所有的还在努力的人。

gradle的依赖方式优化相关推荐

  1. 开发日记-20190916 gradle新的依赖方式implementation,api,compileOnly

    转载于:gradle 新的依赖方式 implementation.api.compileOnly gradle升级之后,有了新的依赖方式,下面我来介绍一下他们的使用 先看看之前的 再看看现在的 区别和 ...

  2. 关于Gradle新版插件依赖方式

    文章目录 一.前言 二.旧版依赖方式 三.新版的依赖方式 四.修改原因 五.为什么改成这种方式 六.其它插件地址 七.参考链接 一.前言 gradle在7.0后,具体不清楚哪一版,把依赖方式进行了修改 ...

  3. AndroidStudio的几种依赖方式

    前置知识点:AndroidStudio中项目组织方式,最高层为Project(虽然结构层次和Eclipse里的workplace有些相似,但还是有很大区别的),下面可以包括很多module,每个mod ...

  4. Gradle之依赖管理

    Gradle之依赖管理 泡在网上的日子 / 文 发表于2015-01-29 16:12 第8824次阅读 Gradle,Android Studio 2 编辑推荐:稀土掘金,这是一个针对技术开发者的一 ...

  5. AndroidStudio使用进阶二:搭建自己的maven私服,并使用Gradle统一依赖管理

    前言: 最近我们老大组织了我们软件团队开了一个小会,说了一些存在的问题,平时在技术上的交流还是比较少的,尤其是在不同的项目之间的开发人员,然而经过这次会议我突然发现,我的缺陷不仅是在基础的能力上,还有 ...

  6. Android Studio3.xx新的依赖方式 implementation、api、compileOnly详解

    转载: https://blog.csdn.net/yuzhiqiang_1993/article/details/78366985 2017 年google 后,Android studio版本更新 ...

  7. gradle 的 依赖管理(八)

    目录 1. 概念 2. repositories 3. dependencies 4. 单项目中的依赖管理 1. 概念 gradle的依赖管理就是,在项目需要引入类库时,只需要在gradle中声明,g ...

  8. gradle排除依赖_如何从Gradle中的所有依赖项中排除库

    gradle排除依赖 我正在使用Spring Boot. 默认情况下,Spring Boot带有Logback. 我想使用log4j(出于任何原因..) 为了做到这一点,我不得不排除logback并添 ...

  9. gradle引入依赖:_Gradle善良:获得更多的依赖性见解

    gradle引入依赖: 在我们的大多数项目中,我们都依赖于其他代码,例如库或其他项目. Gradle有一个不错的DSL来定义依赖关系. 依赖性在依赖性配置中分组. 这些配置可以自己创建,也可以通过插件 ...

最新文章

  1. Ceph 故障修复记录(持续更新)
  2. .NET服务器应用程序开发
  3. Hibernate type 与java 和 数据库类型对应
  4. 深入理解docker graph driver - DeviceMapper
  5. LeetCode:Validate Binary Search Tree
  6. 串口控制led闪烁课程设计_排除led显示屏故障的方法及步骤
  7. python车辆型号识别_汽车型号和款式的识别 如何通过车架号来识别车的型号款式?查汽车型号...
  8. 联想笔记本prtsc不能截图_联想笔记本电脑如何截屏,你值得一看的技巧
  9. centos7设置分辨率
  10. foxmail 不知道这样的主机
  11. 为何日本手机走不出国门?
  12. 获取当前月份的最后一天
  13. Apache服务安装完整教程
  14. 虚拟机VMware使用U盘装系统
  15. 解读银保监“个人信息保护专项整治”,强监管下金融业个人信息安全保护如何“守”?|特邀专栏
  16. IE浏览器兼容性视图设置数据解析
  17. iPhone / iPad iOS 5.0.1完美 越狱 教程 A4/A5处理器
  18. grub effect
  19. 彻底删除卸载Windows Defender杀毒软件的终极绝招
  20. 基于python的文字识别系统,python神经网络识别图片

热门文章

  1. RHCSA环境配置简单命令
  2. 清新黑板手绘PPT模板
  3. 【总结】1056- 如何编写前端设计文档?
  4. PyAutoGUI 使用介绍
  5. 计算机耗材的替换费用计入哪里,电脑耗材可以计入办公费用吗
  6. 软考高级系统架构设计师:论面向服务架构(SOA)设计及其应用
  7. Mac下Android的Eclipse开发环境的搭建
  8. SSD 4K对齐(转)
  9. 软件UI图形界面设计常用软件
  10. 时间同步软件 linux,时间同步(Arch Linux)