如何管理 Gradle 模块之间的依赖关系?

Posted 小陈乱敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何管理 Gradle 模块之间的依赖关系?相关的知识,希望对你有一定的参考价值。

在多模块项目中,手动管理依赖项可能具有挑战性。例如,如果您在修改另一个模块上的库版本后忘记更新库版本,您的项目将有一个重复的库。

从Gradle 7.4.1开始,版本目录是管理 Gradle 项目(也称为模块)之间依赖关系的推荐方式。

要使用版本目录,只需libs.versions.toml在根项目中添加文件。

在toml文件中,您可以添加项目的依赖项。

[versions]
compose = "1.2.1"

[libraries]
compose-foundation =  module = "androidx.compose.foundation:foundation", version.ref = "compose" 
compose-material =  module = "androidx.compose.material:material", version.ref = "compose" 
compose-tooling =  module = "androidx.compose.ui:ui-tooling", version.ref = "compose" 
compose-ui =  module = "androidx.compose.ui:ui", version.ref = "compose" 

[bundles]
compose = ["compose-foundation", "compose-material", "compose-tooling", "compose-ui"]

而已!这些依赖项在您的 Gradle 项目中可用。

以下是您如何在项目的build.gradle.kts.

dependencies 
    implementation(libs.compose.foundation)
    implementation(libs.compose.material)
    implementation(libs.compose.tooling)
    implementation(libs.compose.ui)

请注意,Gradle 将破折号 ( -) 分隔符转换为点 ( .)。从compose-foundation到compose.foundation。

使用版本目录的其他好处是:

  • 某些库的集中版本。

通过使用version.ref,我们可以为每个库分配相同的撰写版本。因此,您只需要在一个地方更新库版本。

  • 分组依赖项。

通常,我们有许多依赖项应该一起声明。我们可以使用 来缩短依赖声明bundle,就像这样。

dependencies 
    implementation(libs.bundles.compose)

概括

通过使用版本目录,我们可以更轻松地管理依赖关系。这对于多模块项目很有用,这在中型或大型软件项目中很常见。

以上是关于如何管理 Gradle 模块之间的依赖关系?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决多模块项目中模块之间的依赖关系?

Gradle 查看包的依赖关系

Gradle 6.0发布

Android gradle 动态添加模块依赖

gradle打包Android程序,如何打包时不包含依赖包

如何根据构建变体使用 gradle 不同依赖模块的依赖项进行编译?