Ohhnews

分类导航

$ cd ..
Jetbrains Blog原文

Kotlin Toolchain 0.12 发布:支持多平台库发布、Wasm 应用及更多新特性

#kotlin toolchain#kotlin multiplatform#webassembly#compose hot reload#开发工具

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 Toolchain

Kotlin Multiplatform 库发布

库发布功能已在 0.11 中以预览形式引入,但当时仅支持 JVM 库。从 0.12 开始,多平台库也同样适用,并且配置完全一致:

$ config
product:
  type: lib
  platforms: [jvm, android, iosArm64, iosSimulatorArm64, wasmJs]

settings:
  publishing:
    enabled: true
    group: org.example
    version: 1.0.0

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 中添加以下片段:

$ cat
{
    "mcpServers": {
        "Compose Hot Reload": {
            "command": "./kotlin",
            "args": [
                "compose-hot-reload-mcp-server"
            ]
        }
    }
}

借助此功能,智能体可以与应用交互、重载、重启、查看窗口快照并转储可组合项树。点击此处了解这些能力的更多信息。

其他改进

使用 // 前缀的新推荐本地依赖格式

此前,定义本地模块依赖的唯一方式是使用以 .(点)符号开头的相对路径。这种方法存在多个问题。例如,将模块从一个目录层级移动到另一个目录层级时,需要修改所有依赖路径,例如从 ../../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 Toolchain

要更新现有项目,请使用 kotlin update 命令。

分享你的反馈

Kotlin Toolchain 仍处于 Alpha 阶段,正在积极开发中。你可以加入 #kotlin-toolchain Slack 频道参与讨论(获取邀请:https://kotl.in/slack),也可以在 YouTrack issue 中分享你的建议和想法。你的反馈和使用场景将帮助塑造 Kotlin Toolchain 的未来!