最近 Amper 发布了《Kotlin Toolchain 0.11: The Next Step for Amper》 核心就是Amper has evolved into the Kotlin Toolchain and is now Alpha也就是 JetBrains 正式把 Amper 并入 Kotlin Toolchain并且从实验阶段推进到 Alpha。感觉就是JetBrains 想给 Kotlin 生态做一个类似cargo/dotnet/go那种统一入口。从 Kotlin Toolchain 0.11 开始Amper 这个名字在产品定位上就被降级了核心能力降被整体迁移进 Kotlin Toolchain以后也没有amper命令入口了全部统一kotlin原来的amper/amper.batwrapper 要替换成新的kotlin/kotlin.batwrapperIDE 插件也从 Amper 插件切换为 Kotlin Toolchain 插件。从产品上看以前 Amper 的定位是「帮你用 YAML 配置 Kotlin/KMP 工程」而现在变成了 Kotlin Toolchain 的一部分成了 Kotlin 项目的统一入口 可以通过一个kotlin命令创建、构建、运行、测试、发布项目。JetBrains 之所以这么做主要是觉得现在的 Kotlin 生态太割裂了现在做一个 Kotlin 项目需要处理一堆东西Kotlin compiler、Gradle、Kotlin Gradle Plugin、Android Gradle Plugin、Kotlin/Native、Xcode/iOS 产物、Maven 发布、Maven Central 签名、source set、平台差异配置……而现在 Kotlin Toolchain 把 Kotlin 的工程入口从 Gradle 脚本、插件版本、模板碎片收敛成一个统一的 Kotlin 官方入口目的就是Kotlin 语言很现代但工程体验还是 JVM 清朝那一套改变变了。所以 0.11 开始 kotlin 就是统一入口了比如kotlin build/kotlin run/kotlin test/kotlin publish同时全局kotlin命令不会强行让所有项目使用同一个工具链版本它会自动找到项目里的 wrapper然后运行匹配版本。另外 0.11 也终于支持发布 JVM library 到 Maven 仓库包括 Maven Central Maven Central 之前发布很麻烦sources jar、javadoc jar、PGP 签名、POM 元数据、checksum、deployment bundle 等等这些东西 Kotlin Toolchain 现在会把这些自动处理掉你在module.yaml里声明 publishing 配置然后执行kotlin publish mavenCentral它就会构建、签名、打包、上传并等待 Maven Central 校验。不过目前 Kotlin Multiplatform library 还不能发布KMP library publishing 还在做暂时只能用在product: jvm/libproduct: jvm/lib ​ description: A meaningful description for this specific module ​ settings: publishing: enabled: true group: com.example # the group has to match your Maven Central namespace version: 1.0.0 # artifactId is optional, and defaults to your modules name mavenCentral: enabled signArtifacts: true # automatically sign your artifacts, no external GPG binary required publishSources: true pom: url: https://example.com scm: https://github.com/my-org/example.git # the SCM connection and dev connection are automatically derived from this developers: - name: John Doe licenses: - name: MIT url: https://opensource.org/license/mit其次还有 Cinterop 支持增强Kotlin Toolchain 现在可以根据模块里cinterop文件夹下的.def文件生成 C library binding同时 IDE sync 阶段也会生成绑定并提供辅助。这个对 KMP / Kotlin Native 很关键因为 Cinterop 如果能被 Toolchain 统一管理就能减少 Kotlin/Native 工程里大量手动配置。同时 0.11 还改善了终端输出和 IDE 同步比如library sources 会在 sync 后自动后台下载这样 sync 完你可以先开始写代码不用等 sources 下载完成IDE 插件的依赖解析从“项目级”对齐为“模块级”和 CLI 行为一致以前 IDE 可能给某个模块解析出错误依赖版本或者编辑器警告和 CLI 不一致现在每个 module 有自己的 resolution scope核心就是CLI 和 IDE 行为一致这也是 Amper / Kotlin Toolchain 的核心价值之一因为 Gradle 生态长期痛点就是各种命令行能过IDE 红IDE 不红CI 挂同步慢依赖解析不一致source set / target / variant 组合复杂所以现在 Kotlin Toolchain 如果能把 IDE model 和 build model 做成同一套声明式结构对 KMP 会很有价值。最后 0.11 还增加了几个插件开发能力checks插件可以注册质量检查比如 lint然后通过kotlin check执行# my-lint-plugin/plugin.yaml tasks: runLinter: action: !kotlinJavaLint sources: ${module.kotlinJavaSources} ​ checks: - name: lint performedBy: runLintercommands插件可以暴露公开命令例如kotlin do updateBaseline# my-lint-plugin/plugin.yaml tasks: updateBaseline: action: !runDetektForBaseline sources: ${module.kotlinJavaSources} outputFile: ${module.rootDir}/detekt/baseline.xml ​ commands: # shorthand when the name of the command matches that of the task - updateBaselinegenerated统一声明 generated sources、resources、classes、cinterop definitions替代旧的markOutputAstasks: generateStuff: action: !myGenerateStuffAction outputSources: ${taskOutputDir}/src outputResources: ${taskOutputDir}/res outputDefFiles: ${taskOutputDir}/cinterop ​ generated: sources: - directory: ${tasks.generateStuff.action.outputSources} language: kotlin resources: - directory: ${tasks.generateStuff.action.outputResources} cinteropDefinitions: - directory: ${tasks.generateStuff.action.outputDefFiles}关于这个 JetBrains 还特别强调这样的生成物可以被人、AI agent 和其他工具更容易识别。这一点很有意思也就是 Kotlin Toolchain 明显不是只给人写配置用的它还在给 AI coding / agent 场景做准备而YAML 声明式配置明显比 Gradle Kotlin DSL 更容易被工具理解。Gradle 脚本本质上是可执行代码里面可以有条件判断、函数调用、动态任务注册、插件魔法吗这些对 IDE、CI、AI agent 来说都很难静态分析。从目前看Amper 进入 Kotlin Toolchain 之后也代表着它正式成为未来的主角kotlin 统一入口也意味着未来 gradlew 等命令会慢慢边缘化。短期看 gradle 还会在但是现在在 Kotlin-first / KMP-first 的新项目里Gradle 的“直接可见度”会被逐步降低。想想JetBrains 2023 年介绍 Amper 时还说 Amper 是作为 Gradle plugin 实现的使用 YAML 做项目配置目的是先验证用户体验同时也强调他们会承诺支持 Maven 和 Gradle不会改变对这些技术的支持。但是 2026 之后Amper 就不再和 Gradle 有关系更多强调的是 “ecosystem doesn’t just need another build tool – it needs a unified entry point into all of Kotlin”也就是 JetBrains 的已经从“改善 Gradle 配置体验”的目标升级成了“建立 Kotlin 官方工具链入口”。所以 0.11 这次不是一个小版本它同时也是一个信号 JetBrains 在告诉社区Kotlin 不想再只是“语言 Gradle 插件”它已经变成一个完整的工具链生态。链接Kotlin Toolchain 0.11: The Next Step for Amper - The JetBrains Blog