昨晚看书本文章,有提到config.gradle,这样一种配置,于是今天就找了个DEMO试了下,记录并总结了一下
这个图是目录结构
config.gradle--project
ext {
android = [
compileSdkVersion: 28,
buildToolsversion: "28.0.3",
applicationId : "com.yangbin.footballnew",
minSdkVersion : 16,
targetSdkVersion : 28,
versionCode : 1,
versionName : "1.0.0"
]
dependencies = [
"appcompat-v7" : 'com.android.support:appcompat-v7:28.0.0',
"support-design" : 'com.android.support:design:+',
//Rxjava
"rxjava" : "io.reactivex.rxjava2:rxjava:2.1.6",
"rxandroid" : "io.reactivex.rxjava2:rxandroid:2.0.1",
"rxrelay" : "com.jakewharton.rxrelay2:rxrelay:2.0.0",
//Retrofit
"retrofit" : "com.squareup.retrofit2:retrofit:2.3.0",
"retrofit-gson" : "com.squareup.retrofit2:converter-gson:2.3.0",
"retrofit-adapter" : "com.squareup.retrofit2:adapter-rxjava2:2.3.0",
"okhttp-log-interceptor": "com.squareup.okhttp3:logging-interceptor:3.8.0"
]
}
build.gradle--project
apply from: "config.gradle"
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle--Module
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsversion rootProject.ext.android["buildToolsversion"]
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
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation filetree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
// implementation project(':base')
implementation rootProject.ext.dependencies["appcompat-v7"]
implementation rootProject.ext.dependencies["support-design"]
implementation rootProject.ext.dependencies["rxjava"]
implementation rootProject.ext.dependencies["rxandroid"]
implementation rootProject.ext.dependencies["rxrelay"]
implementation rootProject.ext.dependencies["retrofit"]
implementation rootProject.ext.dependencies["retrofit-gson"]
implementation rootProject.ext.dependencies["retrofit-adapter"]
implementation rootProject.ext.dependencies["okhttp-log-interceptor"]
}
使用这种方式的好处是当Android Support Repository有更新时
可以直接在gradle文件中展现提示,又有提示,又能统一管理依赖版本号,一举两得
注意:这里要在想使用这个config.gradle,我们要在project下的build.gradle中添加
apply from : "config.gradle"
这样在library,app的build.gradle中使用依赖时,就可以如上面的方式进行依赖。
目的:
避免在依赖包出新版本时,需要对每个module中的build.gradle文件都进行修改(如appcompat-v7包),使用这种方式即只需一次修改,方便维护,管理
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。