Amper logo

Amper

The project configuration and build tool focused on user experience and IDE support.

Amper 更新,2025 年 5 月 – 适用于 Kotlin、服务器端和 Multiplatform 的独立构建工具

Read this post in other languages:

Amper 0.7.0 现已发布,除了对多平台应用的支持,它还包含对使用 Ktor 和 Spring 进行服务器端开发的支持,将 iOS 添加到 Amper 支持的 Kotlin Multiplatform 目标列表中,以及其他功能。 独立版 Amper 现在是项目的主要焦点,基于 Gradle 的版本正在被逐步淘汰。 下文将做出详细介绍,同样,版本说明列出了全部更改。

要使用 Amper 的最新功能,请获取 IntelliJ IDEA 2025.1.2 Preview(或更高版本)。

对 Ktor 和 Spring 的服务器端支持

现在,Amper 直接提供对 KtorSpring 项目的支持,包括打包可执行 JAR 和使用 BOM 依赖项的功能,以及 IDE 集成。

ktor-simplest-sample 展示了使用 Ktor 和 Amper 构建的一个精简 REST 服务:

Amper 还支持 Spring Boot 应用程序。 尝试经典的 Spring PetClinic 示例 – 现在使用 Amper 构建:

您可以在 module.yaml 文件中启用对 Ktor 或 Spring 的支持:

product: jvm/app

settings:
  ktor: enabled
  # or
  springBoot: enabled
  # ... rest of your module configuration ...

这将以合理默认值设置模块:它会为 Spring 添加所需编译器插件(如 no-arg 和 all-open)、应用适当的 BOM、配置版本目录,并让您使用新的 amper package 命令构建可执行 JAR。

Amper 与 Ktor 和 Spring 的现有 IDE 功能完全集成。 您将获得运行配置和端点发现等所有必备功能,以及 Spring Bean Graph 等高级框架特定工具。

要在服务器端项目中试用 Amper,请参见仓库中的示例。 您还可以使用 amper init 命令中包含的服务器端项目的新模板。

IDE 改进

改进的诊断和快速修复

在 Amper 0.7.0 中,我们使许多现有警告和错误消息更易读和可操作。 我们还确保当配置出现错误时,Amper 能够正常降级,并保留工具支持帮助您解决任何问题。 以下是一些亮点:

如果一个依赖项版本被另一个请求较新版本的依赖项重写,Amper 现在会以警告形式报告,详细解释重写原因,并提供快速修复以更新到匹配版本:

当多平台依赖项缺少包含该依赖项的模块所需的一个或多个目标的支持时,Amper 现在会提供明确的错误以及多种快速修复来解决问题:

为错误配置的构建提供清晰的诊断和富有实用价值的指导是我们的首要任务之一。 我们将继续改进,也欢迎您在问题跟踪器中提供反馈。

为未解析引用添加依赖项

当代码引用另一个模块中尚未声明为依赖项的符号时,Amper 现在提供了一个快速修复来将其添加为依赖项,不需要您离开正在编辑的 Kotlin 文件:

此快速修复目前适用于项目中对其他模块的未解析引用。 我们计划在即将发布的版本中添加对 kotlinx.coroutines 等外部库的支持。

独立版 Amper 中的 Kotlin Multiplatform 支持

从 0.7.0 开始,独立版 Amper 除了支持 Android 和桌面端之外,还支持针对 iOS 的 Kotlin Multiplatform 开发。 您可以完全使用 Amper 为这些平台构建、打包和运行 KMP 应用。 无需直接配置其他构建工具 – Amper 在后台处理所有原生工具链集成。

例如,我们已将针对这些平台的更新版 KotlinConf 应用转换为 Amper。 您可以在此分支上找到代码。

要详细了解使用 Amper 的 KMP 项目,请查看仓库中的示例

独立版 Amper 和基于 Gradle 的 Amper 的未来

Amper 最初作为基于 Gradle 的配置工具发布。 Gradle 的功能和插件生态系统帮助我们快速制作原型并支持早期采用模式,包括按模块迁移和自定义构建逻辑的功能。

随后,我们发布了独立版 Amper,它可以完全独立处理构建流程,不需要用户与其他构建工具交互。 我们的目标是回答几个关键问题:

  • 通过编写和维护一个成熟的构建系统,我们是否能带来用户可见的好处?
  • 不依赖第三方插件,直接支持大多数常见场景是否可行?
  • Amper 能否在不牺牲高质量工具支持的条件下提供足够的灵活性来覆盖高级现实场景?

今天,我们很高兴分享这项研究的成果。 独立版 Amper 是目前的主要发展方向。 基于 Gradle 的 Amper 已被弃用,并且将在未来版本中被逐步淘汰

独立版 Amper 已经支持核心 KMP 和服务器端场景。 事实上,Amper 项目本身已经使用独立版 Amper 构建了多个版本! 许多现有的 Amper 诊断、快速修复、重构和其他功能都是因为 Amper 控制了整个构建流程才得以实现,并且我们也看到了进一步发展的巨大潜力。

我们还相信,Amper 可以提供高级用例所需的灵活性和可定制性:自定义打包和部署、环境特定配置(例如,用于 CI)和插件。 我们正在积极推进可扩展性,以支持所有用例。 我们计划很快分享 Amper 可扩展性 API 的首个预览版。

更新的依赖项版本

Amper 现在默认使用 Compose Multiplatform 1.8.0,它将 Compose Multiplatform 对 iOS 的支持提升到稳定状态。

Amper 0.7.0 使用入门

要更新现有的独立版 Amper 项目,请运行更新命令:

./amper update

要开始一个新项目,只需使用 init:

amper init

有关示例,请参见 Amper 仓库中的示例项目

要享受对最新 Amper 功能的全面支持,请使用 IntelliJ IDEA 2025.1.2 Preview(或更高版本)。

分享您的反馈

Amper 仍处于实验阶段,正在积极开发中。 您可以加入 Kotlinlang Slack 的 #amper 频道中的讨论或在 YouTrack 问题中分享您的建议和想法,提供有关您的体验的反馈。 您的意见和用例有助于塑造 Amper 的未来!

本博文英文原作者:

Dmitry Savvinov

Dmitry Savvinov

Discover more