Kotlin Toolchain 0.12 发布:支持多平台库发布、Wasm 应用及更多新特性
Kotlin Toolchain 0.12.0 已发布。此版本带来了一些期待已久的功能:多平台库发布、Wasm 应用支持的预览、命令行 Compose Hot Reload,以及更多内容。
请继续阅读了解详情,并查看发布说明获取完整的更改与 Bug 修复列表。
此外,klibs.io 现在已在生产环境中使用 Kotlin Toolchain。它不是示例项目,而是一个真正的后端,基于 JDK 21、Spring Boot 4(含 Spring AI)、PostgreSQL 和 OpenSearch 构建。我们已将九个约定插件转换为 Kotlin Toolchain 模板,并针对 Jib 和 Git Properties 这两个没有内置对应物的 Gradle 插件,以本地 Kotlin Toolchain 插件的形式实现了它们。你可以亲自查看源码。
要获得对 Kotlin Toolchain 最新功能的支持,请使用 IntelliJ IDEA 2026.2.1(或更高版本)。请确保安装了最新版本的 Kotlin Toolchain 插件。
Kotlin Multiplatform 库发布
库发布功能已在 0.11 中以预览形式引入,但当时仅支持 JVM 库。从 0.12 开始,多平台库也同样适用,并且配置完全一致:
Kotlin Toolchain 会发布使用者在任何目标平台上依赖你的库所需的一切内容:通用 API、每个平台一个构件、源码,以及让构建工具自动选择正确模块的模块发布元数据。
同时支持 Cinterop 绑定。这些绑定会以公共化(commonized)和按平台两种形式发布,因此使用者无需自行配置 interop,就能获得与你编译时所使用的相同 C API。最终产物可以像任何其他多平台库一样从 Gradle 项目中消费。
更多详情请参阅文档。
注意:Compose Multiplatform 库的资源暂未包含在发布内容中。请关注 KTC-5698 了解进展。
更符合 Maven Central 配额要求
由于 Sonatype 即将对 Maven Central 发布实施新的配额限制,我们做了一些显著调整,以减少默认发布的文件数量:
- 签名文件(
.asc.sha1)的校验和已无必要,不再发布。 - 现在默认仅发布
.md5和.sha1校验和。如果你需要继续发布.sha256和.sha512校验和,请使用settings.publishing.checksums: [md5, sha1, sha256, sha512]。
Wasm 应用支持
wasm-js/app 模块现在可以构建为可直接使用的 Web 应用程序。
[LOADING...]
支持的功能包括:
- 使用
kotlin run命令运行 Wasm 应用。 - 自定义
index.html及其他资源。 - 从 Kotlin Multiplatform 库中获取传递性 npm 依赖。
有关处理 Wasm Web 应用程序的更多信息,请参阅文档。
终端 UI 改进
我们正在积极努力让 kotlin 命令的输出不再那么冗长,并且对用户更友好。
诊断
例如,下面是近期的一些诊断改进:
[LOADING...]
状态小部件中的测试
运行中的测试现在会显示在状态小部件中对应的任务及其套件下方。在运行过程中,你还可以看到简短的测试执行统计信息。
还有一些问题需要完善,但我们会做到的。
IDE 改进
Compose 预览支持
Android 模块以及将 Android 作为目标平台之一的 kmp/lib 模块现在支持 Compose 预览功能,该功能由 androidx.compose.ui.tooling.preview.Preview 注解和 Android 插件驱动。
对 Compose 资源的更好支持
IDE 现在能正确识别 Compose 资源,实时更新 Res 类,并提供导航、补全以及可同时更新 XML 和代码的重构功能。
[LOADING...]
Android 工具改进
除了上述 Compose 预览支持外,我们还支持更多你熟悉的 Android 功能,例如:
- Android Lint
- Live Edit
- Layout Inspector
- 资源(
R类)导航与补全
iOS 改进
从 IntelliJ IDEA 2026.2.1 开始,iOS 应用程序的使用体验应更接近你在 Gradle 项目中习惯的体验。
现在,运行配置允许你选择设备、配置 Xcode 选项,并选择 Debug/Release 配置模式。
[LOADING...]
我们还修复了 Kotlin/Swift 互操作中的一些问题,现在应当更加稳定。
目录依赖坐标的内联提示
模块文件和模板中的目录依赖现在旁边会显示内联提示,标明每个条目指向的坐标。
[LOADING...]
更好的 Compose Hot Reload 支持
我们现在通过 kotlin run --compose-hot-reload-mode 命令正式支持从命令行进行 Compose Hot Reload。
常规改进
- 首次重载现在快得多,构建也应当消耗更少资源。
- 现在支持 DevTools 菜单中的 Restart the application(重启应用)操作。
Compose Hot Reload MCP
我们现在提供一个 MCP 服务器,使智能体能够与运行 Compose Hot Reload 的应用进行交互。
要开始使用,请在 mcp.json 中添加以下片段:
借助此功能,智能体可以与应用交互、重载、重启、查看窗口快照并转储可组合项树。点击此处了解这些能力的更多信息。
其他改进
使用 // 前缀的新推荐本地依赖格式
此前,定义本地模块依赖的唯一方式是使用以 .(点)符号开头的相对路径。这种方法存在多个问题。例如,将模块从一个目录层级移动到另一个目录层级时,需要修改所有依赖路径,例如从 ../../foo 改为 ../foo。而在深度嵌套的目录结构中使用大量 ../ 通常也会让路径难以阅读。
新的推荐方式是使用以 // 前缀开头的项目根相对路径来定义本地模块依赖。你可能已经熟悉 Bazel 等工具中的这种语法。// 前缀代表项目根目录,它不仅可用于 dependencies 块,还可用于任何需要路径的位置,例如 apply。
之前:
[LOADING...]
之后:
[LOADING...]
旧有的相对路径方式目前仍然有效。
这是朝着支持同一目录下多个同名模块迈进的一步。
提高最低 JDK 与 Kotlin 版本要求
到目前为止,Kotlin Toolchain 支持的最低 JDK 版本没有在任何地方明确说明,如果你使用的 JDK 过旧,构建会在不同位置直接失败。现在有了清晰的诊断信息和明确的最低要求:编译代码时仅支持 JDK 17 及以上版本。如果你的代码需要在较低的 JRE 上运行,你仍然可以使用 settings.jvm.release 设置更低的目标版本。
最低 Kotlin 编译器版本已从 2.1.10 提高到 2.2.20。这让我们能够简化代码,也符合 Kotlin 标准库新的安全支持政策。
更新默认版本
我们还更新了内置工具链和框架的一些默认版本:
- Kotlin 2.4.10
- JDK 25
- JUnit Platform 6.1.3
- KSP 2.3.11
- Ktor 3.5.2
- Spring Boot 4.1.0
- DataFrame 1.0.0-rc01
- Kotlinx.rpc 0.10.3
试用 Kotlin Toolchain 0.12.0
要开始使用 Kotlin Toolchain,请查看我们的入手指南。你可以根据自己的学习风格,查看示例、按照教程操作,或阅读完整的用户指南。
要更新现有项目,请使用 kotlin update 命令。
分享你的反馈
Kotlin Toolchain 仍处于 Alpha 阶段,正在积极开发中。你可以加入 #kotlin-toolchain Slack 频道参与讨论(获取邀请:https://kotl.in/slack),也可以在 YouTrack issue 中分享你的建议和想法。你的反馈和使用场景将帮助塑造 Kotlin Toolchain 的未来!