使用 Gradle Version Catalogs 集中管理依赖项
本文档介绍如何使用 Gradle 的 Version Catalogs 功能来集中管理项目中的依赖项版本信息。这种方法有助于在大型项目或多个模块中保持依赖项的一致性和简洁性。
目录
- 什么是 Gradle Version Catalogs
- 创建
libs.versions.toml
文件 - 在
settings.gradle
中启用 Version Catalogs - 在
build.gradle
中使用 Version Catalogs - 如何查找库的
group
、name
和版本号
1. 什么是 Gradle Version Catalogs
Gradle Version Catalogs 是 Gradle 7.0 引入的一项功能,用于集中管理项目中依赖项的版本信息。这使得依赖项的版本管理更加集中和简洁,特别是在管理多个模块或大型项目时。
2. 创建 libs.versions.toml
文件
首先,在项目的根目录下创建一个 gradle
目录,并在其中创建 libs.versions.toml
文件。这个文件用于定义所有依赖项及其版本。
示例 gradle/libs.versions.toml
文件:
[versions]
coreKtx = "1.7.0"
appcompat = "1.4.0"
mlkitDocumentScanner = "16.0.0"
gson = "2.8.8"
retrofit = "2.9.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
mlkit-document-scanner = { group = "com.google.mlkit", name = "document-scanner", version.ref = "mlkitDocumentScanner" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
3. 在 settings.gradle
中启用 Version Catalogs
在项目的 settings.gradle
文件中启用版本目录:
dependencyResolutionManagement {
versionCatalogs {
libs {
from(files("gradle/libs.versions.toml"))
}
}
}
4. 在 build.gradle
中使用 Version Catalogs
在模块级别的 build.gradle
文件中使用定义好的库:
plugins {
id 'com.android.application'
id 'kotlin-android'
}
android {
compileSdk 31
defaultConfig {
applicationId "com.example.documentscanner"
minSdk 21
targetSdk 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.mlkit.document.scanner)
implementation(libs.gson)
implementation(libs.retrofit)
}
5. 如何查找库的 group
、name
和版本号
官方文档和网站
每个库的官方文档通常会提供依赖项的详细信息,包括 group
、name
和版本号。例如,Google 官方文档会列出 AndroidX 和 ML Kit 库的依赖信息。
Maven Central 或其他仓库
你可以在 Maven Central Repository 或其他仓库中搜索相关库,获取正确的 group
、name
和版本号。
- 访问 Maven Central 网站。
- 输入库的名称,如 “retrofit”。
- 在搜索结果中选择你需要的库。
- 查看库的详细信息,通常会显示
groupId
、artifactId
和版本号。
例如,搜索 Retrofit 的结果页面显示:
Group: com.squareup.retrofit2
Artifact: retrofit
Version: 2.9.0
示例 libs.versions.toml
以下是一个包含多个库的 libs.versions.toml
文件示例:
[versions]
coreKtx = "1.7.0"
appcompat = "1.4.0"
mlkitDocumentScanner = "16.0.0"
gson = "2.8.8"
retrofit = "2.9.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
mlkit-document-scanner = { group = "com.google.mlkit", name = "document-scanner", version.ref = "mlkitDocumentScanner" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
通过以上方法,你可以查找到各个库的 group
、name
和版本号,并将它们添加到 libs.versions.toml
文件中,集中管理依赖项的版本信息。