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 同级最好