网站做的一样算不算侵权,电商开发网站公司,华为商城,网站开发工程师证一个简单的 Android 版本目录实现指南 使用 TOML 格式 在本文中#xff0c;我们将探讨版本目录以及如何实现它。
版本目录
Gradle 版本目录使您能够以可扩展的方式添加和维护依赖项和插件。因此#xff0c;不必在各个构建文件中硬编码依赖项名称和版本#xff0c;而是在目…一个简单的 Android 版本目录实现指南 使用 TOML 格式 在本文中我们将探讨版本目录以及如何实现它。
版本目录
Gradle 版本目录使您能够以可扩展的方式添加和维护依赖项和插件。因此不必在各个构建文件中硬编码依赖项名称和版本而是在目录中定义它们并在所有模块中使用。
实现
要实现版本目录我们可以在 settings.gradle 文件的 dependencyResolutionManagement 块中定义目录查看此链接以了解更多详细信息但我们将使用 TOML 格式来实现它… https://docs.gradle.org/current/userguide/platforms.html 1- 创建一个版本目录文件
在根项目的 gradle 文件夹中创建一个名为 libs.versions.toml 的文件。Gradle 默认在 libs.versions.toml 文件中查找目录因此建议使用这个默认名称。
2- 定义您的版本、库和插件…
在 libs.versions.toml 中我们可以定义我们的表…
[versions]
kotlin 1.8.10
compose 1.4.0
material3 1.1.0-rc01
...[libraries]
compose-ui { module androidx.compose.ui:ui, version.ref compose }
compose-material3 { module androidx.compose.material3:material3, version.ref material3 }
...[plugins]
kotlin-android { id org.jetbrains.kotlin.android, version.ref kotlin }
...基本上[versions] 和 [libraries] 是一组键/值对如 kotlin 1.8.10的集合称为 Tables… https://toml.io/en/v1.0.0#table 这些表将从所有构建文件的libs.table.key处访问因此我们稍后将在构建文件中使用它们。
请注意我们使用了版本引用version.ref xxx而不是硬编码版本。这样可以使我们的版本可重复使用
注意您可以使用分隔符例如 -、_、.Gradle 将它们归一化为 .并允许您创建子部分。因此compose-ui 将成为 compose.ui。
3- 定义 bundles可选
优化的做法是声明依赖束这是常用在一起的“依赖项组”。例如…
[bundles]
compose [compose-ui,compose-material3
]4- 最后在您的模块中使用它们
同步项目嘿您现在拥有了一切可以轻松地使用类型安全的自动完成来定义依赖项…
plugins {alias libs.plugins.kotlin.android...
}dependencies {// composeimplementation libs.compose.uiimplementation libs.compose.material3// or you can use bundlesimplementation libs.bundles.compose
}实际上就是这样 现在您只需同步项目解决 Gradle 抛出的数千个错误然后就可以开始了
以下是一些有用的注意事项…
1- 您可以不使用库的完整 ID…
compose-ui { module androidx.compose.ui:ui, ...}而是分开定义库的组和名称…
androidx-ktx { group androidx.core, name core-ktx, ... }2- 通常版本名称使用驼峰命名例如hiltCompose而库、捆绑包和插件使用短横线命名例如androidx-ktx。 3- 在我们的 TOML 文件中声明的版本也可以通过类型安全的访问器访问使它们可以用于更多用例而不仅仅是依赖版本。例如如果您正在使用 compose…
composeOptions {kotlinCompilerExtensionVersion libs.versions.compose.get()
}版本目录(Version catalog)的优势
1- 使用类型安全的自动完成轻松添加依赖项。2- 所有依赖项都在一个地方进行管理并对所有模块可见。3- 集中式版本控制。4- 捆绑包功能令人惊叹
缺点
1- 没有依赖项更新建议。但您可以使用此插件来帮助您保持库的最新状态2- 迁移项目可能会比较繁琐使用 Copilot 或向懂行的人寻求帮助吧。
参考链接 https://github.com/infoilyasipek/satellite/commit/f516054ae393eca2cf1c8bdd58735aa1819aabbc https://docs.gradle.org/current/userguide/platforms.html https://developer.android.com/build/migrate-to-catalogs#groovy https://proandroiddev.com/better-dependencies-management-using-buildsrc-kotlin-dsl-eda31cdb81bf