1. Config.gradle

在 ​​android studio​​​ 中使用多 ​​module​​​ 的时候,每个 ​​module​​​ 下都会生成 ​​build.gradle​​​ 文件,每个 ​​build.gradle​​​ 文件都有自己的一套 ​​sdk​​​ 版本和依赖,这如果被其他小伙伴使用的话,需要知道每个 ​​build.gradle​​ 的版本依次解决,这样总感觉不爽。

所以,使用 ​​config.gradle​​​ 统一管理自己项目下的版本号、签名、​​appid​​​和依赖等,是非常清晰的管理自己的 ​​module​​ 。

比如:

ext.versions = [
// 本地仓库版本
coreui : '1.0.1',
core : "1.0.1",
hardware : "1.0.0",
// base version : compile = target
complieSdk : 25,
buildTools : '25.0.2',
targetSdk : 25,
minSdk : 18,
code : 3,
name : '1.0',
//test
junit : '4.12',
//dependencies
gson : '2.8.0',
okhttp : '3.5.0',
retrifit2 : '2.1.0',
retrifitRxAdapter: '1.0.0',
rxAndroid : '2.0.1',
rxJava : '2.0.2',
glide : '3.7.0',
// view version
appcompat : '25.1.0',
constraint : '1.0.2',
]

// 非界面所需依赖

ext.libs = [
gson : "com.google.code.gson:gson:$versions.gson",
//ok http
okhttpLib : "com.squareup.okhttp3:okhttp:$versions.okhttp",
okhttpInterceptor : "com.squareup.okhttp3:logging-interceptor:$versions.okhttp",
//retrofit2
retrifit2Lib : "com.squareup.retrofit2:retrofit:$versions.retrifit2",
retrifit2Gson : "com.squareup.retrofit2:converter-gson:$versions.retrifit2",
retrifit2Rxjava2Adapter: "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:$versions.retrifitRxAdapter",
//rx
rxAndroid : "io.reactivex.rxjava2:rxandroid:$versions.rxAndroid",
rxJava2 : "io.reactivex.rxjava2:rxjava:$versions.rxJava",
//glide
glide : "com.github.bumptech.glide:glide:$versions.glide",
]

// 测试所需要的依赖

ext.tests = [
testJuint: "junit:junit:$versions.junit",
]

// 界面所需要的依赖

ext.views = [
appcompat : "com.android.support:appcompat-v7:$versions.appcompat",
layoutConstraint: "com.android.support.constraint:constraint-layout:$versions.constraint",
v7_cardview : "com.android.support:cardview-v7:$versions.appcompat",
design : "com.android.support:design:$versions.appcompat",
]

// 项目所有的 app id

ext.appIds = [
simple:"com.smartahc.android.template.demo"
]

// 本地仓库配置

def LOCAL_SERVER_IP = "127.0.0.1"

ext.artifactIds = [
coreui : "coreui",
core : "core",
hardware: "hardware"
]

ext.groupIds = [
core: "com.smartahc.android.core",
]

ext.urls = [
localUseMaven : "http://" + LOCAL_SERVER_IP + ":8081/artifactory/smartahc-release/",
localUploadPath: "http://" + LOCAL_SERVER_IP + ":8081/artifactory"
]

ext.localRespos = [
repoName: "cores-release",
userName: "core",
password: "core"
]

我上面的统一管理了下面几项:

  • 所有使用的版本号 ​​versions​
  • 业务所需要的依赖 ​​libs​​​ ( ​​retrofit2 + rxjava2 + okhttp3​​ 如果那里需要,我引入即可)
  • 界面所需的依赖 ​​views​
  • 如果有多个项目的话管理 ​​appId​​ ( 也可以使用在正式版和测试版上)
  • 本地仓库的一些配置

2.使用

比如上面我管理的版本号和appId , 使用如下:

apply plugin: 'com.android.application'
// 引入config.gradle
apply from: "$rootDir/config.gradle"


android {

// 版本号使用
compileSdkVersion versions.complieSdk
buildToolsVersion versions.buildTools

defaultConfig {
// appid 配置
applicationId appIds.simple
minSdkVersion versions.minSdk
targetSdkVersion versions.targetSdk
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':core_ui')
}

3. 使用步骤

  • 在项目根目录下,新建 config.gradle
  • 配置版本号
  • 引入 config.gradle
  • 使用版本号

config.gradle 与 settings.gradle 同级最好

Android - Gradle 使用干货 之 Config.gradle 统一管理版本及其配置_版本号