前言
在Android的實(shí)際開(kāi)發(fā)中,我們會(huì)經(jīng)常使用到多Module開(kāi)發(fā)槽袄,而當(dāng)我們修改一些版本信息或者SDK升級(jí)時(shí)芹关,可能涉及多個(gè)Module都需要修改皿桑。
顯然逐個(gè)修改Module中的build.gradle文件是非常繁雜而且容易出錯(cuò)的一件事情撒会,基于此種
情況嘹朗,我們需要對(duì)整個(gè)工程中的配置和依賴進(jìn)行統(tǒng)一管理。
一诵肛、建立單獨(dú)config.gradle文件統(tǒng)一配置
我們可以在項(xiàng)目根目錄下建立config.gradle
文件屹培,然后在項(xiàng)目的build.gradle
文件中中引入:
apply from:"config.gradle"
buildscript {
...
}
BuildConfig管理
首先是對(duì)BuildConfig的管理,如buildToolsVersion怔檩,targetSdkVersion等基本的config信息褪秀。
config.gradle文件中添加:
ext {
android = [
sourceCompatibilityVersion: JavaVersion.VERSION_1_8,
targetCompatibilityVersion: JavaVersion.VERSION_1_8,
minSdkVersion : 21,
targetSdkVersion : 28,
compileSdkVersion : 30,
buildToolsVersion : "28.0.3",
versionCode : 1,
versionName : "1.0.0"
]
}
然后在Module里的build.gradle
文件中可以使用上述參數(shù):
compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsVersion rootProject.ext.android["buildToolsVersion"]
defaultConfig {
applicationId "com.example.demowork1"
minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"]
versionCode rootProject.ext.android["versionCode"]
versionName rootProject.ext.android["versionName"]
...
}
三、依賴管理
我們?cè)诙鄠€(gè)Module中可以存在一些相同的依賴薛训,如果我們對(duì)這些依賴升級(jí)媒吗,則需要多個(gè)Module配置都更改,容易疏漏乙埃。因此對(duì)依賴進(jìn)行統(tǒng)一管理是十分有必要的闸英,我們同樣可以使用config.gradle
文件實(shí)現(xiàn)依賴管理。
在config.gradle
文件中添加各個(gè)依賴的版本及庫(kù)名稱介袜,使用versions統(tǒng)一管理依賴的版本自阱,dependencies統(tǒng)一管理引入的依賴,詳細(xì)代碼如下:
versions = [
// androidx libs
appCompatVersion : "1.0.2",
recyclerViewVersion : "1.2.0",
constraintLayoutVersion : "2.0.4",
materialVersion : "1.2.1"
]
dependencies = [
// androidx libs
appcompat : "androidx.appcompat:appcompat:${versions.appCompatVersion}",
recyclerView : "androidx.recyclerview:recyclerview:${versions.recyclerViewVersion}",
constraintLayout : "androidx.constraintlayout:constraintlayout:${versions.constraintLayoutVersion}",
material : "com.google.android.material:material:${versions.materialVersion}"
]
完成在config中的配置后米酬,我們就可以在Module的build.gradle
中引用上述的依賴配置:
dependencies {
implementation rootProject.ext.dependencies.appcompat
implementation rootProject.ext.dependencies.okhttp
implementation rootProject.ext.dependencies.recyclerView
implementation rootProject.ext.dependencies.constraintLayout
implementation rootProject.ext.dependencies.material
}
我們的config.build是在根目錄下,所有Module中都可以引入對(duì)應(yīng)的依賴趋箩,這樣在升級(jí)SDK時(shí)直接更新config中的配置即可赃额,達(dá)到一個(gè)統(tǒng)一管理的效果。
總結(jié)
通過(guò)自定義config.build文件可以實(shí)現(xiàn)依賴的統(tǒng)一管理叫确,對(duì)于組件化開(kāi)發(fā)的工程提供維護(hù)便利跳芳。