IntelliJ IDEA 2025.1 Help

OpenRewrite

OpenRewrite 是一个用于运行 recipes 的工具,以进行常见框架迁移、安全修复和风格一致性任务。 例如,它可以通过修改构建文件、更改已弃用的 API 并迁移配置设置来自动完成迁移到新框架版本的过程。

在 Gradle 和 Maven 项目中,IntelliJ IDEA 提供与 OpenRewrite 的集成,包括代码辅助、专用运行配置以及旨在简化创建和执行 OpenRewrite recipes 的操作。

创建 OpenRewrite 配方

  1. 项目 工具窗口中,右键点击文件夹(或按 Alt+Insert )并选择 新建 | 打开 Rewrite 配方

  2. 在打开的 新建 OpenRewrite 配方 对话框中,输入新配方文件的名称,然后按 Enter

    这将基于专用的 file template创建一个新的配方文件。

  3. 提供一个完全限定的、唯一的 name 并且,在 recipeList 下,开始输入您要添加的配方名称。

    IntelliJ IDEA 为您提供 OpenRewrite 编码辅助功能,包括已知 recipe 名称的自动完成、快速文档查找以及带有 recipe 描述的内嵌提示。

OpenRewrite 协助

运行 OpenRewrite 配方

  1. 打开 OpenRewrite 配方文件。

  2. 在边栏中,点击 运行图标

您可以在 运行 工具窗口中查看执行输出。

迁移完成后,点击 显示更改 以预览修改文件列表。 点击其中任何一个以查看所做的更改。

显示配方更改

如果这是您第一次运行该 recipe,IntelliJ IDEA 会创建一个临时运行配置,您 可以自定义

运行内置迁移方案

对于某些框架,IntelliJ IDEA 提供迁移方案,您可以直接从您的构建文件中运行,从而省去手动编写方案的麻烦。 这适用于 Spring 版本低于 3、Quarkus 版本低于 2,以及 Micronaut 版本 3 或更低。

  1. 打开您的构建文件: pom.xmlbuild.gradle(.kts)

  2. 点击编辑器右侧工具栏上的 OpenRewrite 图标 OpenRewrite 图标

    或者,在 项目 工具窗口中,右键点击您的构建文件并选择 重构 | 运行 OpenRewrite 迁移

  3. 在打开的列表中,选择一个食谱。

OpenRewrite 配方列表

这将运行所选的迁移配方。

展开复杂的配方

一个配方可以代表单个操作,也可以由多个其他配方组成。 例如, UpgradeSpringBoot_3_2 方案包含十几个其他方案:除了升级 Spring Boot 的 Gradle 或 Maven 依赖版本,您还必须迁移 Spring Security、Spring Data,更新 API 元素,等等。

使用 IntelliJ IDEA,您可以检索并预览这些作为更复杂配方组成部分的配方。 例如,这允许您删除某些独立操作,如果您想延迟较大迁移的一些部分,或者如果您更喜欢手动实施这些更改。

  1. 在 OpenRewrite YAML 文件中,将文本光标置于配方名称处,然后按 Alt+Enter (显示上下文操作)。

  2. 选择 内联配方。 只有在配方包含其他配方时,该操作才可用。

    内联配方

OpenRewrite 运行配置

IntelliJ IDEA 配备专用的 OpenRewrite 运行配置。 当您第一次使用器 间距图标 运行图标 运行食谱时,IntelliJ IDEA 会创建一个临时运行配置。

如果您想自定义 IntelliJ IDEA 启动流程的方式,您可以修改此运行配置或创建一个新的:前往 运行 | 编辑配置 或按 Alt+Shift+F10

OpenRewrite 运行配置

主要参数

名称

为运行配置指定名称。

存储为项目文件

将运行配置设置保存到文件中,以便与其他团队成员共享。 默认位置是 .idea/runConfigurations 。 但是,如果您不想共享 .idea 目录,您可以将配置保存到项目内的任何其他目录。

工作目录

您希望运行配方的目录。

有效配方

要运行的 Recipes。 开始输入名称,以获取本地配方名称以及来自 OpenRewrite 目录的适用配方名称的补全。

日志

请指定在 运行 工具窗口的专用选项卡中,应在控制台显示哪些运行应用程序时生成的日志文件。

OpenRewrite 修改选项

有效样式

采用的 OpenRewrite styles 列表。 与配方类似,您可以输入本地样式的名称,或开始输入名称以获取来自 OpenRewrite 目录的样式补全。

配置位置

指定 OpenRewrite 配置文件的自定义位置。

排除项

指定要排除 OpenRewrite 操作的文件或路径,例如 **/internal/**

纯文本掩码

应解析为纯文本的文件掩码集。

OpenRewrite 版本

自定义要使用的 Maven/Gradle OpenRewrite 插件的版本。

添加 VM 选项

启动应用程序时传递给 Java 虚拟机的 VM 选项。

环境变量

为用于执行 OpenRewrite 配方的 Maven goal 或 Gradle task 设置环境变量。

试运行

运行 dryRun task (适用于 Gradle)或 dryRun goal (适用于 Maven),以预览配方将要进行的更改,而不实际更改任何文件。

您可以在 运行 工具窗口中找到 Dry run report 的路径。

启动前

选择在启动所选运行/调试配置之前要执行的任务。

最后修改日期: 2025年 4月 24日