Compose 编译器迁移指南
最终更新: 2025/02/06Compose 编译器通过一个 Gradle plugin 来补充, 它会简化设置, 并提供更简单的访问编译器选项的能力. 在与 Android Gradle plugin (AGP) 一起使用时, 这个 Compose 编译器 plugin 会覆盖由 AGP 自动提供的 Compose 编译器的座标.
从 Kotlin 2.0.0 开始, Compose 编译器已经合并到了 Kotlin 代码仓库. 这有助于将你的项目平滑的迁移到 Kotlin 2.0.0 或更高版本, 因为 Compose 编译器与 Kotlin 同时发布, 并且始终与相同版本的 Kotlin 保持兼容.
要在你的项目中使用新的 Compose 编译器 plugin, 请对使用 Compose 的每个模块应用这个 plugin. 请阅读如何 迁移 Jetpack Compose 项目 的详细信息. 对 Compose Multiplatform 项目, 请参见 跨平台迁移指南.
迁移 Jetpack Compose 项目
从 Kotlin 1.9 迁移到 Kotlin 2.0.0 或更高版本时, 你应该根据使用 Compose 编译器的方式来调整你的项目配置. 我们推荐使用 Kotlin Gradle plugin 和 Compose 编译器 Gradle plugin, 自动进行配置管理.
使用 Gradle plugin 管理 Compose 编译器
对于 Android 模块:
将 Compose 编译器 Gradle plugin 添加到 Gradle 版本目录:
[versions] # ... kotlin = "2.1.0" [plugins] # ... org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
将 Gradle plugin 添加到根
build.gradle.kts
文件:plugins { // ... alias(libs.plugins.compose.compiler) apply false }
向使用 Jetpack Compose 的每个模块适用 plugin:
plugins { // ... alias(libs.plugins.compose.compiler) }
如果你使用针对 Jetpack Compose 编译器的编译器选项, 请在
composeCompiler {}
代码块中设置这些选项. 关于编译器选项, 请参见 编译器选项列表.如果你直接引用 Compose 编译器的 artifact, 你可以删除这些引用, 让 Gradle plugin 来处理.
不使用 Gradle plugin, 直接使用 Compose 编译器
如果你没有使用 Gradle plugin 来管理 Compose 编译器, 请在你的项目中更新对旧 Maven artifact 的所有直接引用:
将
androidx.compose.compiler:compiler
修改org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable
将
androidx.compose.compiler:compiler-hosted
修改org.jetbrains.kotlin:kotlin-compose-compiler-plugin
下一步做什么
请参见关于 Compose 编译器移动到 Kotlin 代码仓库的 Google 公告.
如果你使用 Jetpack Compose 来构建 Android App, 请阅读 我们的关于如何让它成为跨平台 App 的指南.