使用 Gradle Version Catalogs 集中管理依赖项

使用 Gradle Version Catalogs 集中管理依赖项

本文档介绍如何使用 Gradle 的 Version Catalogs 功能来集中管理项目中的依赖项版本信息。这种方法有助于在大型项目或多个模块中保持依赖项的一致性和简洁性。

目录

  1. 什么是 Gradle Version Catalogs
  2. 创建 libs.versions.toml 文件
  3. settings.gradle 中启用 Version Catalogs
  4. build.gradle 中使用 Version Catalogs
  5. 如何查找库的 groupname 和版本号

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. 如何查找库的 groupname 和版本号

官方文档和网站

每个库的官方文档通常会提供依赖项的详细信息,包括 groupname 和版本号。例如,Google 官方文档会列出 AndroidX 和 ML Kit 库的依赖信息。

Maven Central 或其他仓库

你可以在 Maven Central Repository 或其他仓库中搜索相关库,获取正确的 groupname 和版本号。

  1. 访问 Maven Central 网站
  2. 输入库的名称,如 “retrofit”。
  3. 在搜索结果中选择你需要的库。
  4. 查看库的详细信息,通常会显示 groupIdartifactId 和版本号。

例如,搜索 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" }

通过以上方法,你可以查找到各个库的 groupname 和版本号,并将它们添加到 libs.versions.toml 文件中,集中管理依赖项的版本信息。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值