12.3.1 Compose 编译器迁移指南

原文链接: https://kotlinlang.org/docs/compose-compiler-migration-guide.html

12.3.1 Compose 编译器迁移指南

Compose 编译器由一个 Gradle 插件作为补充,该插件简化了设置,并让编译器选项更易访问。当它与 Android Gradle 插件(AGP)一起应用时,这个 Compose 编译器插件会覆盖 AGP 自动提供的 Compose 编译器的坐标。

从 Kotlin 2.0.0 开始,Compose 编译器已合并到 Kotlin 仓库中。这有助于让项目更平滑地迁移到 Kotlin 2.0.0 及更高版本,因为 Compose 编译器与 Kotlin 同步发布,并且始终与相同版本的 Kotlin 兼容。

要在项目中使用新的 Compose 编译器插件,请为每个使用 Compose 的模块应用它。继续阅读以了解如何迁移 Jetpack Compose 项目的细节。对于 Compose Multiplatform 项目,请参阅多平台迁移指南。

迁移 Jetpack Compose 项目

从 1.9 迁移到 Kotlin 2.0.0 或更新版本时,你应当根据自己处理 Compose 编译器的方式调整项目配置。我们建议使用 Kotlin Gradle 插件和 Compose 编译器 Gradle 插件来自动管理配置。

用 Gradle 插件管理 Compose 编译器

对于 Android 模块:

  1. 把 Compose 编译器 Gradle 插件添加到 Gradle 版本目录:
1
2
3
4
5
6
7
8
     [versions]
     # ...
     kotlin = "2.4.20"

     [plugins]
     # ...
     org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
     compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }

注意: 如果你使用 AGP 9.0.0 或更高版本,就不再需要 org-jetbrains-kotlin-android 插件了,因为 AGP 内置了 Kotlin 支持。

  1. 把该 Gradle 插件添加到根 build.gradle.kts 文件中:
1
2
3
4
     plugins {
         // ...
         alias(libs.plugins.compose.compiler) apply false
     }
  1. 把该插件应用到每个使用 Jetpack Compose 的模块:
1
2
3
4
     plugins {
         // ...
         alias(libs.plugins.compose.compiler)
     }
  1. 如果你在为 Jetpack Compose 编译器使用编译器选项,请在 composeCompiler {} 块中设置它们。可参考编译器选项列表。

  2. 如果你直接引用了 Compose 编译器构件,可以移除这些引用,交由 Gradle 插件处理。

不使用 Gradle 插件时使用 Compose 编译器

如果你没有使用 Gradle 插件来管理 Compose 编译器,请更新项目中所有对旧 Maven 构件的直接引用:

  • 把 androidx.compose.compiler:compiler 改为 org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable
  • 把 androidx.compose.compiler:compiler-hosted 改为 org.jetbrains.kotlin:kotlin-compose-compiler-plugin

接下来学什么