编程 Kotlin Toolchain 0.12 发布:多平台库发布、Wasm 应用与更多特性

2026-09-05 22:15:54

Kotlin Toolchain 0.12 发布:多平台库发布、Wasm 应用与更多特性

JetBrains 发布了 Kotlin Toolchain 0.12.0 版本。这是 Kotlin 官方构建工具链的又一次重要更新,带来了多个期待已久的特性,包括多平台库发布、Wasm 应用支持、构建性能优化等。

Kotlin Toolchain 是什么

Kotlin Toolchain 是 JetBrains 推出的 Kotlin 官方构建工具链,旨在简化 Kotlin 项目的构建和管理。它整合了编译器、构建系统、包管理等功能,提供统一的构建体验。

Kotlin Toolchain 的核心目标:

  • 简化构建配置:用简洁的 DSL 替代复杂的 Gradle 配置
  • 统一多平台构建:一套配置支持 JVM、JS、Native、Wasm 等多个平台
  • 提升构建速度:通过增量编译、构建缓存、并行构建等技术提升构建速度
  • 集成包管理:内置依赖管理和包发布功能
  • 开发者体验:提供更好的错误信息、IDE 集成和调试体验

Kotlin Toolchain 目前仍在快速发展中,每个版本都带来重要的新特性和改进。

0.12 版本的核心特性

1. 多平台库发布

这是 0.12 版本最受期待的特性之一。在此之前,发布多平台 Kotlin 库需要复杂的配置和多个发布任务。0.12 版本简化了这个流程:

  • 统一发布配置:一个发布配置自动处理所有平台的产物
  • 自动元数据管理:自动生成和发布多平台元数据(metadata)
  • 支持 Gradle Module Metadata:生成符合 Gradle 标准的模块元数据,确保依赖解析正确
  • 简化签名配置:统一的签名配置,自动为所有平台产物签名
  • 支持 Maven Central 和其他仓库:一键发布到 Maven Central 或其他 Maven 仓库

这个特性大大降低了多平台库作者的发布负担,让更多开发者能够轻松发布和维护多平台 Kotlin 库。

2. Wasm 应用支持

Kotlin/Wasm 是 Kotlin 编译到 WebAssembly 的目标平台。0.12 版本增强了对 Wasm 应用的支持:

  • Wasm 应用模板:内置 Wasm 应用项目模板,快速创建新项目
  • Wasm 调试支持:支持在浏览器中调试 Kotlin/Wasm 代码
  • Wasm 测试支持:支持在 Node.js 或浏览器中运行 Wasm 测试
  • Wasm 大小优化:改进了 Wasm 产物的大小优化,减小最终二进制体积
  • Wasm 与 JS 互操作:改进了 Kotlin/Wasm 与 JavaScript 的互操作支持

Kotlin/Wasm 使得 Kotlin 代码可以在浏览器中以接近原生的速度运行,特别适合性能敏感的 Web 应用。

3. 构建性能优化

0.12 版本在构建性能方面有多项改进:

  • 更快的增量编译:改进了增量编译算法,减少了需要重新编译的文件数
  • 改进的构建缓存:构建缓存的命中率提升,特别是在多模块项目中
  • 并行依赖解析:依赖解析现在可以并行执行,减少了依赖解析时间
  • 更快的配置阶段:项目配置阶段的速度提升,特别是大型多模块项目
  • 优化的编译器守护进程:编译器守护进程的内存管理和复用更加高效

根据 JetBrains 的基准测试,0.12 版本相比 0.11 版本,中型项目的平均构建时间减少了约 15%-20%。

4. 改进的依赖管理

0.12 版本改进了依赖管理功能:

  • 版本目录(Version Catalog)支持:支持使用版本目录统一管理依赖版本
  • 依赖约束(Dependency Constraints):支持依赖约束,控制传递依赖的版本
  • 依赖分析工具:内置依赖分析工具,查看依赖树、检测冲突和重复
  • 依赖更新检查:自动检查依赖更新,提示可用的新版本
  • BOM 支持:支持 Maven BOM(Bill of Materials),统一管理一组依赖的版本

5. 测试改进

0.12 版本在测试方面有多项改进:

  • 并行测试执行:支持并行执行测试,减少测试时间
  • 测试过滤:支持按标签、名称、包等过滤测试
  • 测试报告改进:更详细的测试报告,包括测试耗时、失败原因等
  • 参数化测试:改进了参数化测试的支持
  • 测试覆盖率:集成测试覆盖率工具,支持 JaCoCo 和其他覆盖率工具

6. 更好的错误信息

0.12 版本显著改进了错误信息的质量:

  • 更清晰的编译错误:编译错误信息更加清晰,附带具体的修复建议
  • 更好的上下文:错误信息包含更多上下文信息,帮助定位问题
  • 配置错误检测:更好地检测和报告配置文件中的错误
  • 依赖错误解释:依赖解析失败时,给出更清晰的原因解释和解决方案
  • 彩色终端输出:支持彩色终端输出,错误和警告更加醒目

多平台支持的进展

Kotlin 的核心优势之一是多平台支持。0.12 版本在多平台支持方面继续推进:

支持的平台

  • JVM:Kotlin 的传统目标平台,支持 Java 互操作
  • JavaScript:编译到 JavaScript,支持 Node.js 和浏览器
  • Native:编译到原生二进制,支持 iOS、Android NDK、Linux、macOS、Windows 等
  • Wasm:编译到 WebAssembly,支持浏览器和 Wasmtime 等运行时

多平台项目结构

0.12 版本简化了多平台项目的结构:

  • 公共源代码集(commonMain):包含跨平台共享的代码
  • 平台源代码集(jvmMain、jsMain、nativeMain 等):包含平台特定的代码
  • expect/actual 机制:在公共代码中声明 expect,在平台代码中提供 actual 实现
  • Cinterop 支持:Kotlin/Native 支持与 C 库互操作

与 Gradle 的关系

Kotlin Toolchain 并不是要完全替代 Gradle,而是提供一个更简洁的选择:

  • Kotlin Toolchain:面向 Kotlin 项目优化,配置简洁,学习曲线平缓
  • Gradle:功能强大,灵活性高,适合复杂的多语言项目和企业级构建

Kotlin Toolchain 底层可以使用 Gradle 作为构建引擎,也可以使用独立的构建引擎。用户可以根据项目需求选择合适的工具。

升级建议

对于已经在使用 Kotlin Toolchain 的用户,建议升级到 0.12 版本:

  • 升级前备份项目配置
  • 查看发布说明中的破坏性变更
  • 在测试分支验证构建和测试
  • 逐步迁移到新的 API 和配置格式

对于还在使用 Gradle + Kotlin DSL 的用户,可以考虑在新项目中尝试 Kotlin Toolchain,体验更简洁的构建配置。

总结

Kotlin Toolchain 0.12.0 是一个重要的版本更新,带来了多平台库发布、Wasm 应用支持、构建性能优化、改进的依赖管理、测试改进和更好的错误信息等多项特性。

这些改进体现了 Kotlin 生态的持续健康发展:

  • 多平台支持不断完善,让 Kotlin 成为真正的全栈语言
  • 构建工具不断优化,提升开发者体验和构建效率
  • Wasm 等新兴平台的支持,让 Kotlin 能够适应新的技术趋势
  • 开发者体验持续改进,降低学习和使用门槛

对于 Kotlin 开发者来说,关注 Kotlin Toolchain 的发展是值得的。它可能代表了 Kotlin 构建工具的未来方向。

原文链接:https://blog.jetbrains.com/kotlin/2026/09/kotlin-toolchain-0-12-multiplatform-library-publishing-wasm-apps-and-more/

推荐文章

程序员茄子在线接单