android studio管理依赖,Android Studio 中的 Gradle 依赖统一管理

在我们的实际项目开发中,通常在一个 Project 项目中会存在多个 Module 的情况,在这些 Module 中会存在一些相同的版本依赖配置,针对进行版本升级的时候需要逐个修改,显得特别麻烦,所以将依赖的配置抽取出来是一个不错的想法。

1. 项目结构

通常我们的项目在 Project 模式的下结构是:

rootProject

--module1

--build.gradle

--module2

--build.gradle

...

--build.gradle

所以针对各个 Module 的统一管理,我们可以在 Project 的根目录 build.gradle 中进行配置,或者通过新建一个 config.gradle 配置来完成。

2. 在 Project 的 build.gradle 中配置

build.gradle 是针对整个 Project 级别的配置,所以在 build.gradle 中进行配置让每个 Module 去读取配置。

根目录 build.gradle 配置

新建 config.gradle 进行配置

2.1 根目录 build.gradle 配置

在 Android Studio 中的 .gradle 中支持 Groovy 语言,所以我们的配置起始就是有点类似于 Java 中的存储配置变量。

在 Gradle DSL 中通过 Project.ext 进行 Extra Properties(额外属性)

build.gradle

rootProject.ext{

android = [

compileSdkVersion : 28,

buildToolsVersion : "28.0.0",

applicationId : "sw.andoter.com.gradleplugindemo",

minSdkVersion : 15,

targetSdkVersion : 28,

versionCode : 1,

versionName : "1.0"

]

sdkVersion = 13

}

在具体的 Module 中使用:

android {

compileSdkVersion rootProject.ext.android.compileSdkVersion

defaultConfig {

applicationId rootProject.ext.android.applicationId

minSdkVersion rootProject.ext.android.minSdkVersion

targetSdkVersion rootProject.ext.android.targetSdkVersion

versionCode rootProject.ext.android.versionCode

versionName rootProject.ext.android.versionName

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

这样就可以引用了,非常简单。但是这样如果配置量比较大,在根目录的 build.gradle 中进行配置就显得可读性非常差,所以就会使用方式二进行配置。

2.2 新建 config.gradle 进行配置

通过新建配置文件进行配置,形成如下目录:

rootProject

--module1

--build.gradle

--module2

--build.gradle

...

--build.gradle

--config.gradle

1. 选中项目,右键新建 Gradle Script 脚本配置

config.gradle

rootProject.ext{

android = [

compileSdkVersion : 28,

buildToolsVersion : "28.0.0",

applicationId : "sw.andoter.com.gradleplugindemo",

minSdkVersion : 15,

targetSdkVersion : 28,

versionCode : 1,

versionName : "1.0"

]

sdkVersion = 13

}

在 Module 的配置中引用

引用配置脚本文件通过 apply from:xx,需要注意的就是 .gradle 文件的位置,同级目录我们直接写文件名称即可,不同目录需要使用相对路径。

Module 的 build.gradle

apply from : "../config.gradle"

android {

compileSdkVersion rootProject.ext.android.compileSdkVersion

defaultConfig {

applicationId rootProject.ext.android.applicationId

minSdkVersion rootProject.ext.android.minSdkVersion

targetSdkVersion rootProject.ext.android.targetSdkVersion

versionCode rootProject.ext.android.versionCode

versionName rootProject.ext.android.versionName

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

以后再对依赖包升级的时候直接修改 config.gradle 文件就 OK 了。

3. 综述

纵观上面的方式,核心思想就是保存配置的数据,所以不一定非要选择在 .gradle 文件中,只要方便使用就行。比如可以放在 gradle.properties中。注意 .properties 文件中存储的是键值对 key-value 形式。

gradle.properties

key = "I'm from gradle.properties"

在 Module 的 build.gradle 新建一个 Task 进行测试下:

task readConfig{

doLast{

println key

}

}

同样可以进行配置数据的读取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值