Android versionCatalog 依赖管理笔记

32 阅读1分钟

gradle 7新版本适配

Gradle 7最低版本配置

版本名称最低版本
Android-Gradle-Plugin7.4
SDK Build Tools30.0.3
NDK23.1.xxx
jdk11
Gradle-wrapper7.5

使用Version Catalog 管理Android依赖

优点:

  1. 对所有module可见,可统一管理所有module的依赖
  2. 支持声明依赖bundles,组合打包依赖减少代码重复
  3. 支持单独的libs.versions.toml文件中配置依赖,支持在项目间共享依赖

低版本gradle下,高版本可以不用添加 首先在settings.gradle 文件下添加

enableFeaturePreview("VERSION_CATALOGS")

image.png

然后我们就可以开始了

1.低版本项目build中的buildScript下maven就可以配置在settings.gradle的pluginManagement下 image.png

image.png

对于如果是http的,可能需要在maven里添加allowInsecureProtocol = true

2.低版本项目的allprojects下的maven配置到settings.gradle的dependencyResolutionManagement下

优点:

  • 对所有module可见,可统一管理所有module的依赖
  • 支持声明依赖bundles,组合打包减少重复代码
  • 支持单独的libs.versions.toml 文件中配置依赖。支持在项目间共享依赖。

不要在settings.gradle配置

 versionCatalog {
        library("appcompat", "androidx.appcompat", "appcompat")
    }

有些地方在setttings.radle配置,但是我这里配置无法识别library()

lbs.versions.toml 如何配置

在项目的根目录 gradle文件夹下创建文件lbs.versions.toml

TOML 语法

[versions] # 定义版本号(推荐复用)

[versions] 
appcompat = "1.3.0"

[libraries] # 定义第三方库(对应 implementation/api 等)

[libraries]
# AndroidX
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }

//在app build.gradle中

implementation libs.appcompat

[plugins] # 定义 Gradle 插件(可选)

[plugins] 
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
// build.gradle 
plugins { 
    alias(libs.plugins.kotlin.android) 
}