Ohhnews

分类导航

$ cd ..
Jetbrains Blog原文

Amper 0.10发布:引入JDK自动配置、Maven转换器及编译器插件支持

#amper#构建工具#java开发#jetbrains#项目迁移

查看所有往期文章 jb.gg/amper-blog

Amper 0.10.0 现已发布!此版本带来了多项新功能,例如 JDK 配置、自定义 Kotlin 编译器插件、Maven 转 Amper 转换器以及多项 IDE 改进。请继续阅读以了解详情,并查看发行说明以获取完整的变更和错误修复列表。

如需获取 Amper 最新功能的支持,请使用 IntelliJ IDEA 2025.3.4 IntelliJ IDEA 2026.1 (或更高版本)。请确保安装了最新版本的 Amper 插件。

JDK 配置

Amper 需要 JDK(Java Development Kit)来执行项目中的各种任务:编译 Kotlin 和 Java 源码、运行测试、运行 JVM 应用等。

我们的理念是,您无需在机器上手动安装或配置任何内容即可运行项目。正因如此,Amper 能够自动为您配置 JDK——默认情况下为 JDK 21。

不过,某些项目需要特定的 JDK 版本。现在,您可以在 module.yaml 中指定所需 JDK 的条件,Amper 将下载并安装匹配的 JDK。

$ config
settings:
  jvm:
    jdk:
      version: 21 # 主版本号
      distributions: [ zulu, temurin ] # 可接受的发行版

Amper 还会考虑 JAVA_HOME 环境变量,因为这是在机器上设置所用 JDK 的常用方式。您可以在文档中阅读更多关于 Amper JDK 配置行为的信息。

Maven 转换器与 Maven 插件兼容性

如果您已有 Maven 项目,则不必从头开始重写构建配置。此版本引入了一个半自动转换工具,它可以读取您的 pom.xml 文件(包括多模块 Reactor 项目中的文件),并为您生成相应的 project.yamlmodule.yaml 文件。使用方法很简单,只需运行:

$ bash
./amper tool convert-project

该转换器会将您的依赖项、BOM、仓库、发布坐标、编译器标志和其他设置映射为 Amper 的等效项。为了在过渡期间支持同时使用两种构建系统,它会在每个模块中设置 layout: maven-like,这样您的源目录结构(包括 src/main/javasrc/main/kotlin)将保持不变,无需移动任何文件。

诸如 maven-compiler-pluginspring-boot-maven-plugin 等知名 Maven 插件会被转换为内置的 Amper 设置。其他 Maven 插件则会添加到 module.yaml 中新的 mavenPlugins 配置部分,Amper 可以通过我们的 Maven 插件兼容层在构建过程中执行它们。

由于转换是尽力而为的,某些项目可能在转换后需要微调。有关完整演练和限制列表,请参阅文档

Kotlin 编译器插件

此版本带来了对第三方 Kotlin 编译器插件的支持。启用此功能非常简单,只需在 module.yaml 中添加以下内容:

$ config
settings:
  kotlin:
    compilerPlugins:
      - id: org.example.my.plugin
        dependency: org.example:my-plugin:1.0.0
        options:
          myKey1: myValue1
          myKey2: myValue2

请参阅文档了解示例以及如何为自定义插件启用 IDE 支持。

我们还增加了对 kotlinx.rpcJsPlainObjects 编译器插件的内置支持。

IDE 改进

重构了运行 Amper 命令的 UX

我们重新设计了在 IDE 中创建和编辑运行配置的 UI。新的自定义视图让您可以更方便地配置 runtest 命令的选项: [LOADING...] [LOADING...]

此外,您现在可以通过在“添加新配置”菜单中选择 Amper 来为任何 Amper 命令创建配置: [LOADING...]

如果您想以临时方式运行命令,可以使用 Run Anything(运行任何内容) (Ctrl+Ctrl) 并在命令前加上 amper[LOADING...]

在 module.yaml 中为原生应用提供运行装订线图标

原生应用(linux/appmacos/appwindows/app)现在可以通过装订线(gutter)图标从 IDE 启动: [LOADING...]

Test 工具窗口中更好的测试名称

现在,当显示测试执行树时,Test 工具窗口会遵循 JUnit 5 的 @DisplayName@ParameterizedTest.name 注解。

$ kotlin
@ParameterizedTest(name = "Test #{0}")
@DisplayName("My parameterized test")
@ValueSource(ints = [1, 2, 3])
fun parameterized(i: Int) {}

[LOADING...]

Ktor 插件辅助

如果您的模块具有 Ktor 服务器依赖项,module.yaml 文件将通过 Add Plugins...(添加插件...)嵌入式提示提供搜索和添加插件的支持: [LOADING...]

或者,您可以使用 Kotlin 代码中的补全功能,它会自动添加所有必要的依赖项,而无需您手动操作 module.yaml 文件: [LOADING...]

支持分析 JVM 应用

注意:此功能需要 IntelliJ IDEA Ultimate。

现在可以使用 IntelliJ IDEA 的分析器支持来运行 jvm/app 模块中的运行命令配置: [LOADING...]

Amper 插件开发

Amper 的上一个版本带来了 Amper 可扩展性系统的预览。我们收到了大量反馈,目前正在致力于扩展插件的功能。虽然发布和共享插件的功能仍在开发中,但此版本已包含一项有价值的改进:您现在可以在 plugin.yaml 中使用 ${module.settings} 来引用插件中的模块设置: [LOADING...]

其他改进

从 0.10 版本开始,Amper 支持在传递依赖项的 POM 文件中声明的 Maven 配置 (Profiles)

在此版本中,我们还引入了在 module.yaml 中添加模块描述的功能。描述采用 Markdown 格式,可以占用多行。此文本不仅用于 CLI 中的 ./amper show modules 命令,IDE 也会用它来显示模块信息。对于库,默认情况下它还会用作发布元数据中的描述。 [LOADING...]

更新的默认版本

我们更新了工具链和框架的一些默认版本:

  • Kotlin: 2.3.20
  • Android 最低 SDK: 23
  • Compose: 1.10.3
  • KSP: 2.3.6
  • Ktor: 3.4.1
  • Spring Boot: 4.0.5

尝试 Amper 0.10.0

要更新现有项目,请使用 ./amper update 命令。

要开始使用 Amper,请查看我们的入门指南。根据您的学习偏好,您可以查看示例、跟随教程或阅读详尽的用户指南。

尝试 Amper

分享您的反馈

Amper 仍处于实验阶段,正处于积极开发中。您可以通过加入 Kotlinlang Slack 的 #amper 频道参与讨论,或在 YouTrack 问题跟踪器中分享您的建议和想法,以此提供反馈。您的输入和使用案例将助力 Amper 的未来发展!