告别复杂的 Gradle 配置!JetBrains Amper 0.10 发布:用 YAML 构建 Kotlin/Android 项目

512 阅读11分钟

前言

每个 Android 开发者,都有被 复杂的Gradle支配的恐惧记忆:

  • 新建一个 Hello World 项目,build.gradle.kts 就写了 80 行,你甚至不知道其中一半在干嘛;
  • AGP 从 8.x 升到 9.x,改了版本号之后一片红;
  • 多模块项目 Gradle Sync 一次要 30 秒,你只是改了一行依赖版本;

最近,JetBrains 正式发布了 Amper 0.10——这是一款新一代构建工具,目标明确:

🎯 用 50 行 YAML 做到 Gradle 300 行 Kotlin DSL 才能做的事,并且同步速度快 100 倍。

今天这篇文章,我带你把 Amper 0.10 从里到外拆一遍


一、Amper 是什么?

定位

JetBrains 推出的一款面向 Kotlin/Java 开发的实验性独立构建工具(Standalone Build Tool),类似Gradle。

官网地址:amper.org/

核心理念

"batteries included"——开箱即用

  • 你不需要理解 Gradle 的 Task 图、Plugin 机制、DSL 语法糖;
  • 你不需要写一行命令式脚本来配置构建逻辑;
  • 你只需要用声明式 YAML 描述"我要构建什么",Amper 帮你搞定剩下的一切。

二、Amper 对比 Gradle:它真的能替代 Gradle 吗?

这是所有人最关心的问题。先上对比表:

维度GradleAmper
配置格式Groovy / Kotlin DSL(命令式)YAML(声明式)
配置文件长度平均 300 行/模块平均 50 行/模块
IDE 同步速度秒级(大型项目 >10s)毫秒级(<100ms)
多平台支持需复杂插件配置原生支持
学习曲线陡峭(Groovy DSL + Kotlin DSL + Task API + Plugin API)平缓(YAML + 少量约定)
可扩展性⭐⭐⭐⭐⭐ 极强(成熟插件生态,数千个社区插件)⭐⭐ 实验中(0.9.0 引入自定义 Task 和 Plugin)
Android AGP 支持官方原生部分委托 synthetic Gradle build
社区生态极其成熟(10 年+积累)起步阶段
成熟度生产级实验性

✅ Amper 优势

1. 配置极简

这是 Amper 最大的卖点。YAML 声明式配置消除了 Gradle 中 90% 的"模板噪音"。对于新手来说,module.yaml 几乎是自解释的。

2. 同步速度碾压

Gradle Sync 是 Android 开发者的日常噩梦——改一行依赖,等 30 秒。Amper 的同步速度在毫秒级,这不是优化,是数量级的差距。原因是 Amper 的声明式配置不需要执行任何脚本来解析。

3. 多平台原生支持

如果你在做 KMP(Kotlin Multiplatform)开发,Amper 的多平台配置比 Gradle 简单一个量级。不需要手动配置 sourceSetstargetscompilations,声明目标平台即可。

4. JDK 零配置

JDK Provisioning 功能让环境配置变成了"不需要配置"。

⚠️ Amper 劣势

1. 可扩展性仍然薄弱

Gradle 最强大的地方是它的插件生态——数千个社区插件覆盖了从代码生成到部署的方方面面。Amper 在 0.9.0 才刚引入自定义 Task 和 Plugin 的预览,生态几乎为零。

2. Android 构建链未完全独立

Amper 在处理 Android 项目时,部分构建任务仍然委托给合成的 Gradle 构建。这意味着你并没有真正摆脱 Gradle——只是在上层多了一层 YAML 配置。

对比示例

同样是配置一个 Android Compose 项目,来看看两者的代码量差距:

  • Gradle(build.gradle.kts):大约 40+ 行,而且这还是精简版——真实项目里加上 buildTypessigningConfigsproductFlavors、测试依赖,轻松突破 100 行

  • Amper(module.yaml):15 行搞定。Android SDK 版本、序列化插件——你声明意图,Amper 处理细节

不需要手动配置编译器插件版本、不需要声明 BOM 平台依赖、不需要写 compileOptionskotlinOptions 这种"每个项目都一样但每次都得写"的模板代码。


三、🎯 适用场景

场景建议
KMP 新项目(库/工具)✅ 强烈推荐尝试。Amper 的多平台配置优势最明显
个人 Side Project✅ 推荐。快速上手,体验丝滑
小型 Android 项目(≤3 模块)✅ 可以尝试。配置简单,同步飞快
中大型 Android 项目(10+ 模块)⚠️ 观望。插件生态和扩展能力不足
已有成熟 Gradle 配置的项目❌ 暂不建议迁移。迁移成本高,收益不确定
CI/CD 流水线深度定制❌ 暂不适合。Gradle 的 Task 图和插件生态是硬需求

四、Amper 0.10 新特性全面解析

最近发布的 Amper 0.10,是迄今为止特性最丰富的一个版本,主要包括:

  • JDK Provisioning
  • Maven Converter
  • Kotlin Compiler Plugins 支持
  • IDE 改进
  • CLI 改进
  • 版本依赖更新

特性1: 🔧 JDK Provisioning——再也不用手动装 JDK 了

痛点

每个 Android 开发者入职新公司第一天的噩梦:配 JDK。

哪个版本?OpenJDK 还是 Oracle JDK?装到哪个路径?JAVA_HOME 配了吗?Android Studio 内置的 JDK 和系统 JDK 冲突了怎么办?

Amper 的解法

Amper 0.10 默认自动下载 JDK 21,开发者无需手动安装任何 JDK。

零配置即可工作。如果你需要指定特定版本或发行版,在 module.yaml 中声明即可:

settings:
  jdk:
    version: 21
    distribution: temurin  # 可选: zulu, temurin, corretto 等

也可以在 project.yaml 中全局配置:

settings:
  jdk:
    version: 17
    distribution: zulu

原理

Amper 内置了 JDK 下载和管理机制——首次构建时自动检测当前环境是否有符合要求的 JDK,没有就从官方源下载对应版本。整个过程对开发者透明,你甚至感知不到它发生了。

这对 CI/CD 环境尤其有价值:不再需要在 Docker 镜像里预装 JDK,Amper 自己会搞定。

特性2:🔄 Maven Converter——半自动迁移 Maven 项目

适用场景

如果你的项目(或你依赖的内部库)仍然使用 Maven pom.xml 构建,Amper 0.10 提供了一个半自动化的转换工具。

使用方式

# 在 Maven 项目根目录执行
./amper tool convert-project

这条命令会:

  1. 扫描所有 pom.xml 文件
  2. 解析模块结构、依赖关系、插件配置
  3. 生成对应的 project.yamlmodule.yaml 文件
  4. 标注无法自动转换的部分,提示你手动处理

⚠️ 注意

这是半自动化工具,不是一键迁移银弹。Maven 中一些高度自定义的 plugin 配置、profile 切换逻辑,可能需要手动调整。但对于标准的 Maven 项目结构,转换器能完成 80%+ 的工作。

特性3:🔌 Kotlin Compiler Plugins 支持

Amper 0.10 新增了对第三方 Kotlin 编译器插件的配置支持。

module.yaml 中直接声明:

settings:
  kotlin:
    compilerPlugins:
      - id: org.jetbrains.kotlin.plugin.compose
      - id: org.jetbrains.kotlin.plugin.serialization
      - id: com.google.devtools.ksp
        version: 2.1.20-1.0.0

之前 Amper 只支持内置的 Compose 和 serialization 插件,现在第三方插件也能配了。这对于使用 KSP(Room、Dagger/Hilt)、Arrow、kotlinx-datetime 编译器插件的项目来说是刚需。

特性4:💻 IDE 改进——编辑体验大幅提升

Amper 0.10 在 IntelliJ IDEA 和 Fleet 中带来了多项 IDE 改进:

1. 模板提取/内联重构

支持在 YAML 配置中提取和内联模板——类似于代码中的 Extract Method / Inline Variable,但用于构建配置。

2. 依赖自动转换

这个功能特别贴心:当你从 Gradle 项目中复制一行依赖声明,比如:

implementation("androidx.compose.material3:material3:1.4.0")

粘贴到 Amper 的 module.yaml 中时,IDE 会自动将其转换为 Amper 格式

- androidx.compose.material3:material3:1.4.0

省去了手动改格式的麻烦,对于正在从 Gradle 迁移的开发者来说非常实用。

3. 全新项目树设计

重新设计的项目树更清晰地展示了多模块、多平台的项目结构,不再是 Gradle 那种平铺的模块列表。

特性5: ⌨️ CLI 改进——终端体验焕然一新

show 命令组

Amper 0.10 新增了一组 show 命令,让你快速了解项目状态:

# 查看所有模块
amper show modules

# 查看当前配置(合并后的最终配置)
amper show settings

# 查看可用的构建任务
amper show tasks

交互式 amper init

amper init

现在 amper init 支持交互式引导

  1. 选择项目类型(App / Library)
  2. 选择目标平台(JVM / Android / iOS / Multiplatform)
  3. 选择是否启用 Compose
  4. 自动生成项目骨架

日志着色与精简

构建输出不再是密密麻麻的白色文字了。Amper 0.10 对日志做了着色处理——错误红色、警告黄色、成功绿色,一眼就能定位问题。同时精简了冗余日志,只保留开发者真正需要关注的信息。

Tab 补全

支持 Shell Tab 补全:

amper sh<Tab>  # → amper show
amper show m<Tab>  # → amper show modules

适配 Bash 和 Zsh,安装方式详见官方文档。

特性6: 📦 版本依赖更新

Amper 0.10 默认捆绑了以下版本:

组件版本
Kotlin2.1.20
Compose Multiplatform1.7.3
kotlinx.serialization1.8.0

这意味着你创建一个新项目后,开箱就是最新的技术栈,不需要手动升级任何依赖版本。


五、如何快速上手 Amper

5.1 安装 Amper

Amper 提供了一键安装脚本:

macOS / Linux:

curl -fsSL https://amper.org/install.sh | bash

Windows(PowerShell):

iwr -useb https://amper.org/install.ps1 | iex

安装完成后验证:

amper --version
# 输出: Amper 0.10.x

5.2 创建新项目

方式一:交互式创建

amper init

按照引导选择项目类型、平台、是否启用 Compose,几秒钟就能生成一个完整的项目骨架。

方式二:手动创建

创建项目目录和基础配置文件:

mkdir my-android-app && cd my-android-app

创建 project.yaml

product:
  type: app
  platforms: [android]

创建 module.yaml

product:
  type: app
  platforms: [android]

settings:
  android:
    namespace: com.example.myapp
    compileSdk: 35
    minSdk: 24
    targetSdk: 35
  compose:
    enabled: true
  jdk:
    version: 21

dependencies:
  - org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0

然后运行:

amper build

第一次构建时,Amper 会自动下载 JDK 21、Kotlin 编译器、Compose 编译器插件——你不需要预装任何东西。

5.3 迁移现有 Maven 项目

cd your-maven-project
./amper tool convert-project

转换后检查生成的 YAML 文件,手动调整标注的问题项,然后运行 amper build 验证。

5.4 推荐的 IDE 版本

IDE推荐版本
IntelliJ IDEA2025.1+
JetBrains Fleet最新版
Android Studio⚠️ 暂未官方支持,但可通过 IntelliJ IDEA 的 Android 插件使用

⚠️ 提示:Amper 的 IDE 支持目前以 IntelliJ IDEA 和 Fleet 为主。如果你主要使用 Android Studio,建议在 IntelliJ IDEA 中体验 Amper,等待后续 Android Studio 的官方集成。


六、Amper 发展历程

Amper 不是突然出现的:经历了近 3 年迭代,从一个实验性的 Gradle 插件,成长为一个独立的构建工具。

时间里程碑意义
2023.11JetBrains 首次发布 Amper作为 Gradle 插件形式,配置层覆盖在 Gradle 之上
2024.02支持 Gradle Version Catalogs与现有 Gradle 生态兼容
2024.11Amper 0.5.0IDE 体验改进,YAML 编辑支持增强
2025.05(KotlinConf 2025)宣布成为独立构建工具🔥 里程碑事件:不再依赖 Gradle,standalone 路线正式确立
2025.10支持 Compose Hot Reload开发体验对齐 Gradle 的 Live Edit
2025.11Amper 0.9.0首次推出可扩展性预览:自定义 Task 和 Plugin
2026.03Amper 0.10 发布JDK Provisioning、Maven Converter 等重磅特性

关键转折点是 2025 年 5 月的 KotlinConf。

JetBrains 在大会上明确宣布:Amper 将作为独立构建工具(standalone build tool) 继续发展,不再只是 Gradle 的上层封装。这意味着 Amper 不是要"改善 Gradle 的配置体验",而是要从底层替代 Gradle

当然,这条路还很长,但方向已经很清晰了——逐步接管,最终独立


七、个人看法

作为一个写了 10 年 Android 的开发者,我对 Amper 的态度是:谨慎乐观

乐观的理由

  • Gradle 的复杂度确实是 Android 开发生态中最大的"隐形成本"。
  • 我见过太多新手被 build.gradle.kts 劝退,见过太多团队花大量时间在构建配置上而不是业务开发上。
  • Amper 用声明式 YAML 把这个门槛降了下来——构建工具应该是帮你干活的,不是让你研究它本身的

JDK Provisioning、毫秒级同步、多平台原生支持——这些都是实实在在的体验提升。

谨慎的原因

  • Gradle 的生态太成熟了。AGP(Android Gradle Plugin)、数千个社区插件、CI/CD 集成、大型企业的深度定制——这些不是一两年能替代的。

  • 而且 Amper 仍处于实验阶段,API 不稳定,功能不完善。把一个生产项目迁移到 Amper 上,目前风险大于收益。

个人建议

  • 如果你在启动新的 KMP 项目或个人项目,现在就可以用 Amper
  • 如果你是Android 开发者,保持关注,在 Side Project 中体验
  • 如果你负责大型商业项目的构建系统,继续用 Gradle,但关注 Amper 的每个版本更新

八、展望

Amper 的路线图显示,接下来的重点方向包括:

  • 完全脱离 Gradle 的 Android 构建支持
  • 自定义 Task 和 Plugin 生态的成熟
  • 与更多 IDE 的深度集成(包括 Android Studio)
  • 社区插件生态的建立

如果 JetBrains 能在 2026-2027 年解决可扩展性和 Android 构建链独立的问题,Amper 有很大的机会成为下一代 Kotlin 项目的默认构建工具

毕竟,JetBrains 同时掌握着 Kotlin 语言、IntelliJ 平台、Compose Multiplatform 这三张王牌。他们比任何人都更了解 Kotlin 开发者需要什么样的构建体验。

而 Amper,就是他们给出的答案。


💬 你觉得 Amper 能替代 Gradle 吗?欢迎评论区聊聊你的看法。


📎 参考资源