您的位置:首页 > 移动开发 > Android开发

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

2017-04-27 09:52 686 查看

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