借助 Compose 物料清单 (BOM),您只需指定 BOM 的版本即可管理所有 Compose 库版本。BOM 本身会关联不同 Compose 库的稳定版本,从而确保这些库能够很好地协同工作。在应用中使用 BOM 时,您无需为 Compose 库依赖项本身添加任何版本。更新 BOM 版本时,您使用的所有库都会自动更新到其新版本。
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2025.05.00") implementation(composeBom) testImplementation(composeBom) androidTestImplementation(composeBom) // Specify Compose library dependencies without a version definition implementation("androidx.compose.foundation:foundation") // .. testImplementation("androidx.compose.ui:ui-test-junit4") // .. androidTestImplementation("androidx.compose.ui:ui-test") }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom:2025.05.00') implementation composeBom testImplementation composeBom androidTestImplementation composeBom // Specify Compose library dependencies without a version definition implementation 'androidx.compose.foundation:foundation' // .. testImplementation 'androidx.compose.ui:ui-test-junit4' // .. androidTestImplementation 'androidx.compose.ui:ui-test' }
如需了解将哪些 Compose 库版本映射到了特定 BOM 版本,请查看BOM 到库版本的映射。
为何 Compose 编译器库未包含在 BOM 中?
Compose Kotlin 编译器扩展程序 (androidx.compose.compiler) 未关联 Compose 库版本。相反,它关联的是 Kotlin 编译器插件版本,并且其发布周期独立于 Compose 的其余部分。
从 Kotlin 2.0 开始,Compose 应用编译器与 Kotlin 编译器一起进行管理,并使用与 Kotlin 编译器相同的版本。如需了解配置详情,请参阅Compose 编译器 Gradle 插件。
在 Kotlin 2.0 之前,您需要确保使用的版本与您自己的 Kotlin 版本兼容。您可以在Compose 到 Kotlin 兼容性映射中找到映射到每个插件版本的 Kotlin 版本,并参阅Compose 编译器了解如何配置它。
如何使用 BOM 中指定的版本以外的库版本?
在 build.gradle
依赖项部分,保留对 BOM 平台的导入。在库依赖项导入中,指定要覆盖的版本。例如,如果您想使用更高版本的动画库(无论 BOM 中指定了哪个版本),可以按如下方式声明依赖项
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2025.05.00") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.9.0-alpha02") // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2025.05.00") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.9.0-alpha02' // .. }
BOM 是否会自动将所有 Compose 库添加到我的应用中?
否。要真正将 Compose 库添加到您的应用并使用它们,您必须在模块(应用级)Gradle 文件(通常为 app/build.gradle)中将每个库声明为单独的依赖项行。
使用 BOM 可确保应用中任何 Compose 库的版本都是兼容的,但 BOM 实际上不会将这些 Compose 库添加到您的应用中。
为什么 BOM 是管理 Compose 库版本的推荐方式?
未来,Compose 库将独立版本化,这意味着版本号将以自己的速度递增。每个库的最新稳定版本都经过了协同测试。然而,查找每个库的最新稳定版本可能很困难,而 BOM 可帮助您自动使用这些最新版本。
我是否必须使用 BOM?
否。您仍然可以选择手动添加每个依赖项版本。但是,我们建议您使用 BOM,因为它将使您更轻松地同时使用所有最新的稳定版本。
BOM 是否适用于版本目录?
是。您可以将 BOM 本身包含在版本目录中,并省略其他 Compose 库版本
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
别忘了在模块的 build.gradle
中导入 BOM
Kotlin
dependencies { val composeBom = platform(libs.androidx.compose.bom) implementation(composeBom) androidTestImplementation(composeBom) // import Compose dependencies as usual }
Groovy
dependencies { Dependency composeBom = platform(libs.androidx.compose.bom) implementation composeBom androidTestImplementation(composeBom) // import Compose dependencies as usual }
如果我想试用 Compose 库的 Alpha 或 Beta 版,该怎么办?
有三种可用的 Compose BOM。每个 BOM 都是 Compose 库最新可用版本的即时快照。
- 稳定版 - 包含每个库的最新稳定版本
- Beta 版 - 包含每个库的最新 Beta 版、候选发布版 (RC) 或稳定版本
- Alpha 版 - 包含每个库的最新 Alpha 版、Beta 版、RC 版或稳定版本
Alpha 版和 Beta 版 BOM 通过在 BOM 工件名称后添加 -alpha
和 -beta
来指定。稳定版没有后缀。
Kotlin
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2025.05.00") // or platform("androidx.compose:compose-bom-beta:2025.05.00") implementation(composeBom) // .. }
Groovy
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2025.05.00') // or platform('androidx.compose:compose-bom-beta:2025.05.00') implementation composeBom // .. }
如何报告问题或提供 BOM 反馈?
您可以在我们的问题跟踪器上提交问题。
为您推荐
- 注意:当 JavaScript 关闭时,会显示链接文本
- Compose 中的 Material Design 3
- Compose 中的 ConstraintLayout
- Compose 中的资源