【聲明:】本文是作者(蘑菇v5)原創(chuàng)愤兵,版權(quán)歸作者 蘑菇v5所有鹿霸,侵權(quán)必究。本文首發(fā)在簡書秆乳。如若轉(zhuǎn)發(fā)懦鼠,請注明作者和來源地址!未經(jīng)授權(quán)屹堰,嚴(yán)禁私自轉(zhuǎn)載肛冶!
前言:
在我們項目開發(fā)中,經(jīng)常會通過gradle
依賴使用很多jar
文件扯键,但是當(dāng)多個Module
時睦袖,往往管理版本不方便,依賴的第三方版本不同忧陪,所以更新版本號時扣泊,要改好多地方近范。當(dāng)引入Module
過多時最好提供一種統(tǒng)一的方式去管理版本號,如:compileSdkVersion
延蟹、buildToolsVersion
等评矩,方便日后對版本號進(jìn)行維護(hù)工作。
step1:新建一個叫.gradle
的文件
在項目根目錄下新建一個叫config.gradle
的文件(名字可以任意)阱飘,如下圖1:
step2:在project中的build.gradle
中添加
在根目錄下的build.gradle
文件中引入我們創(chuàng)建的配置文件斥杜,如下圖2:
step3:配置第三方依賴庫
修改config.gradle
依賴庫版本號,如下圖3所示:
代碼完整如下:
ext {
android = [
// 應(yīng)用程序包名
applicationId : "com.dc.arcface",
// 用于編譯的SDK版本
compileSdkVersion: 27,
// 用于Gradle編譯項目的工具版本
buildToolsVersion: "27.0.3",
// 最低支持Android版本
minSdkVersion : 15,
// 目標(biāo)版本
targetSdkVersion : 27,
versionCode : 1,
versionName : "1.0",
// 設(shè)置是否使用混淆
minifyEnabled : true,
minifyDisabled : false
]
dependVersion = [
support : "27.1.1",
junit : "4.12",
constraint : "1.0.2",
runner : "1.0.1",
espresso_core: "3.0.1",
okhttp3 : "3.10.0",
retrofit2 : "2.4.0"
]
dependencies = [
// ------------- Android -------------
supportV4 : "com.android.support:support-v4:${dependVersion.support}",
appcompatV7: "com.android.support:appcompat-v7:${dependVersion.support}",
constraint : "com.android.support.constraint:constraint-layout:${dependVersion.constraint}",
design : "com.android.support:design:${dependVersion.support}",
//------------- 測試 -------------
junit : "junit:junit:${dependVersion.junit}",
runner : "com.android.support.test:runner:${dependVersion.runner}",
espresso : "com.android.support.test.espresso:espresso-core:${dependVersion.espresso_core}",
// ------------- 網(wǎng)絡(luò)請求 -------------
okhttp : "com.squareup.okhttp3:okhttp:${dependVersion.okhttp3}",
retrofit : "com.squareup.retrofit2:retrofit:${dependVersion.retrofit2}"
]
}
step4:在根目錄下的build.gradle中引入
在app目錄下的build.gradle中使用我們配置好的config.gradle
文件中的版本號沥匈,如下圖4:
完整代碼如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
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
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled rootProject.ext.android.minifyDisabled
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation rootProject.ext.dependencies.appcompatV7
implementation rootProject.ext.dependencies.constraint
testImplementation rootProject.ext.dependencies.junit
androidTestImplementation rootProject.ext.dependencies.runner
androidTestImplementation rootProject.ext.dependencies.espresso
}