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

前言

每个 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 吗?

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

维度 Gradle Amper
配置格式 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 中声明即可:

yaml 复制代码
settings:
  jdk:
    version: 21
    distribution: temurin  # 可选: zulu, temurin, corretto 等

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

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 提供了一个半自动化的转换工具。

使用方式

bash 复制代码
# 在 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 中直接声明:

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 项目中复制一行依赖声明,比如:

kotlin 复制代码
implementation("androidx.compose.material3:material3:1.4.0")

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

yaml 复制代码
- androidx.compose.material3:material3:1.4.0

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

3. 全新项目树设计

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

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

show 命令组

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

bash 复制代码
# 查看所有模块
amper show modules

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

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

交互式 amper init

bash 复制代码
amper init

现在 amper init 支持交互式引导

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

日志着色与精简

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

Tab 补全

支持 Shell Tab 补全:

bash 复制代码
amper sh<Tab>  # → amper show
amper show m<Tab>  # → amper show modules

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

特性6: 📦 版本依赖更新

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

组件 版本
Kotlin 2.1.20
Compose Multiplatform 1.7.3
kotlinx.serialization 1.8.0

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


五、如何快速上手 Amper

5.1 安装 Amper

Amper 提供了一键安装脚本:

macOS / Linux:

bash 复制代码
curl -fsSL https://amper.org/install.sh | bash

Windows(PowerShell):

powershell 复制代码
iwr -useb https://amper.org/install.ps1 | iex

安装完成后验证:

bash 复制代码
amper --version
# 输出: Amper 0.10.x

5.2 创建新项目

方式一:交互式创建

bash 复制代码
amper init

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

方式二:手动创建

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

bash 复制代码
mkdir my-android-app && cd my-android-app

创建 project.yaml

yaml 复制代码
product:
  type: app
  platforms: [android]

创建 module.yaml

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

然后运行:

bash 复制代码
amper build

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

5.3 迁移现有 Maven 项目

bash 复制代码
cd your-maven-project
./amper tool convert-project

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

5.4 推荐的 IDE 版本

IDE 推荐版本
IntelliJ IDEA 2025.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.11 JetBrains 首次发布 Amper 作为 Gradle 插件形式,配置层覆盖在 Gradle 之上
2024.02 支持 Gradle Version Catalogs 与现有 Gradle 生态兼容
2024.11 Amper 0.5.0 IDE 体验改进,YAML 编辑支持增强
2025.05(KotlinConf 2025) 宣布成为独立构建工具 🔥 里程碑事件:不再依赖 Gradle,standalone 路线正式确立
2025.10 支持 Compose Hot Reload 开发体验对齐 Gradle 的 Live Edit
2025.11 Amper 0.9.0 首次推出可扩展性预览:自定义 Task 和 Plugin
2026.03 Amper 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 吗?欢迎评论区聊聊你的看法。


📎 参考资源

相关推荐
Java小学生丶6 小时前
记录一下我的 Gradle 开发环境配置过程
android·java·gradle·maven·安卓
Meteors.9 小时前
Kotlin代码优化
开发语言·kotlin
疏狂难除11 小时前
JetBrains IDE插件开发教程(三)——plugin.xml与命令
ide·kotlin·intellij-idea
Refrain_zc1 天前
Android高含金量实战:音频文本 HTML 标签解析 + 段落分组 + 自定义圆角 SpanUI 渲染
kotlin
huaCodeA1 天前
Android面试-Kotlin Coroutines(协程)
android·面试·kotlin
jzlhll1231 天前
android kotlin Flow:distinctUntilChangedBy + stateIn 的坑
android·开发语言·kotlin
唐青枫1 天前
Kotlin 高阶函数别只会 map:从 Lambda 到实战封装
kotlin
plainGeekDev1 天前
Android四大组件面试题,看完这篇就够了
android·面试·kotlin