为什么要对 Gradle 统一管理
在实际项目中,经常会出现一个 Project 中有多个 Module 的情况,如果每个 Module 又同时拥有相同的依赖,比如 v4 包,那么,每次 v4 包升级的时候修改多个 Module 中的 build.gradle 文件,更新其版本都是一件麻烦的事情,而且很有可能忘记某个 Module。所以,将依赖进行统一管理,对于一个 Project 下拥有多个 Module 的情况来说是非常必要的。
build.gradle
apply plugin: 'com.android.application'
//apply plugin: 'android-apt'
apply plugin: 'realm-android'
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
vectorDrawables.useSupportLibrary = true
//注解处理器
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
//执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。
lintOptions {
abortOnError false
}
signingConfigs {
debug {
storeFile file("$rootDir/zcy.keystore")
storePassword "zcyghost"
keyAlias "zcy.keystore"
keyPassword "zcyghost"
}
release {
storeFile file("$rootDir/zcy.keystore")
storePassword "zcyghost"
keyAlias "zcy.keystore"
keyPassword "zcyghost"
}
}
buildTypes {
debug {
// 显示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
versionNameSuffix "-debug"
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.debug
}
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "true"
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources false
//混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//签名
signingConfig signingConfigs.release
}
}
//