你刚学会用 Amper 创建了一个 Kotlin 项目,配置简洁、体验丝滑,正准备安利给同事。
结果打开官网一看:Amper 没了,取而代之的是"Kotlin Toolchain"。
你的第一反应可能是:"又改名?之前的项目还能跑吗?"
别慌。这次不是简单的换皮,而是 JetBrains 对 Kotlin 构建生态的一次顶层设计调整。Amper 的所有能力被完整迁移到了 Kotlin Toolchain,项目直接从实验阶段跳到了 Alpha。
今天这篇,给你梳理 5 个必须知道的变化,看完你就知道该不该跟进、怎么跟进。
JetBrains 当初的愿景是做一个声明式的构建工具,降低 Kotlin 项目的配置门槛。
但随着项目演进,他们发现:开发者需要的不是"又一个构建工具",而是一个统一的 Kotlin 生态入口。
Kotlin Toolchain 就是这个入口。它提供了一个 kotlin 命令,你可以用它:
kotlin init)核心区别是什么? 以前你用 Gradle/Maven,得先选工具、配插件、写脚本,才能写第一行代码。现在一个 kotlin 命令拉通全部。
对已有 Amper 项目的影响:
amper / amper.bat wrapper 脚本 → 替换为 kotlin / kotlin.bat金句:工具选型的最高境界,是没有选型。拿起就能用,才是好工具。
以前每个项目都要提交 wrapper 脚本,虽然能保证"clone 即构建",但也有明显痛点:
kotlin clean-shared-caches 没法用0.11 引入了全局安装,推荐通过 SDKMAN:
sdk install kotlintoolchain安装后,你可以在任意目录使用 kotlin 命令,系统会自动找到项目里的 wrapper 脚本并调用对应版本。这带来了几个实际好处:
cd 回项目根目录再跑命令kotlin init 直接生成,不用先搞 wrapperkotlin tool jaeger、kotlin clean-shared-caches一句话:全局安装让
kotlin命令像git一样自然,但版本隔离依然安全。
这是让很多 Kotlin 开发者等了很久的功能。
以前用 Kotlin Toolchain 写库,本地跑得好好的,发布到 Maven 仓库时还得切换回 Gradle。现在 0.11 正式支持 JVM 库发布,包括 Maven Central。
普通 Maven 仓库的配置很直观:
product: jvm/lib
repositories:
- id: myMavenRepoId
url: https://maven.pkg.github.com/my-org/my-maven-repo
publish: true
credentials:
file: creds.properties
settings:
publishing:
enabled: true
group: com.example
version: 1.0.0执行 kotlin publish myMavenRepoId,项目就上去了。
Maven Central 更复杂,但 Kotlin Toolchain 帮你把脏活全包了:
配置只需要声明你要发布什么:
settings:
publishing:
enabled: true
group: com.example
version: 1.0.0
mavenCentral:
enabled
signArtifacts: true
publishSources: true
pom:
url: https://example.com
scm: https://github.com/my-org/example.git
developers:
- name: John Doe
licenses:
- name: MIT然后一行命令:
kotlin publish mavenCentralKotlin Multiplatform 库的发布还在开发中,但 JVM 库的通路已经打通。
金句:发布到 Maven Central 以前是个手艺活,现在变成了声明式配置。
如果你写过 Kotlin Toolchain 插件(或 Amper 插件),0.11 带来了三个重磅能力:
kotlin check 命令默认跑单元测试,现在插件可以注册额外的质量检查:
# my-lint-plugin/plugin.yaml
tasks:
runLinter:
action: !kotlinJavaLint
sources: ${module.kotlinJavaSources}
checks:
- name: lint
performedBy: runLinter用户可以直接跑 kotlin check lint,也可以 kotlin show checks 查看所有检查项。
插件任务默认是私有的。如果你想暴露一个公共入口(比如生成 changelog、打印信息),用 commands 注册:
commands:
- updateBaseline用户通过 kotlin do updateBaseline 调用,会自动运行关联任务及其依赖。
以前用 markOutputAs 标记生成文件,现在有了专门的 generated 区块,结构更清晰:
generated:
sources:
- directory: ${tasks.generateStuff.action.outputSources}
language: kotlin
resources:
- directory: ${tasks.generateStuff.action.outputResources}
cinteropDefinitions:
- directory: ${tasks.generateStuff.action.outputDefFiles}人类能看懂,AI 工具也能解析。
这三个能力加在一起,意味着 Kotlin Toolchain 的插件生态即将进入快车道。
项目同步完成后,库源码在后台自动下载。你不用等源码下完就能开始写代码,断点调试时再一看——源码已经在了。
以前 IDE 插件在 project 级别解析依赖,CLI 在 module 级别解析,两边行为不一致,导致模块里出现错误的依赖版本或编辑器警告。
现在 IDE 也按模块解析了,CLI 和 IDE 的诊断结果完全一致。
在模块的 cinterop 文件夹里放 .def 文件,Kotlin Toolchain 自动生成 C 库绑定。IDE 同步时也会触发绑定生成,补全和导航直接可用。
改进项 | 说明 |
|---|---|
lib → kmp/lib | 产品类型重命名,更清晰 |
嵌套模板 | 模板可以 apply 其他模板,构建逻辑层次 |
Maven classifier | 支持依赖特定 artifact,如 netty-transport-native-epoll:4.2.13.Final:linux-x86_64 |
run 命令优化 | 只有唯一可运行模块时,自动选择,无需显式指定 |
默认版本更新 | Kotlin 2.3.21、Ktor 3.4.3、SpringBoot 4.0.6、KSP 2.3.7 等 |
序号 | 变化 | 影响 | 你该做什么 |
|---|---|---|---|
1 | Amper → Kotlin Toolchain | 品牌定位升级,Alpha 阶段 | 替换 wrapper 脚本,安装新 IDE 插件 |
2 | 全局安装 | SDKMAN 一键安装,告别 wrapper 束缚 | sdk install kotlintoolchain,全局使用 |
3 | JVM 库发布 | 一行命令发布到 Maven Central | 在 module.yaml 中配置 publishing |
4 | 插件开发增强 | checks/commands/generated 三大新能力 | 如果你是插件作者,升级 API 试试看 |
5 | IDE/终端体验 | 源码自动下载、模块级依赖、Cinterop、UI 优化 | 升级到 IntelliJ IDEA 2026.1.2+ |
今天可以先做的第一步: 如果你在用 Amper,先全局安装 Kotlin Toolchain,然后在项目里执行:
kotlin update --create这条命令会自动生成新的 kotlin wrapper 脚本,替换掉旧的 amper。后续更新直接用 kotlin update。
5 分钟就能完成迁移,剩下的时间可以用来试试新发布的 Maven Central 功能。
今天的分享就到这里。后续我会持续为大家带来实用的技术干货和前沿的技术资讯。如果你对工具链探索感兴趣,我会持续分享前端工程化、构建优化等实战经验,欢迎关注,不要错过任何精彩内容!
支持我们,点赞或分享到朋友圈!