OpenRewrite
OpenRewrite 是一个用于运行 recipes 的工具,以进行常见框架迁移、安全修复和风格一致性任务。 例如,它可以通过修改构建文件、更改已弃用的 API 并迁移配置设置来自动完成迁移到新框架版本的过程。
在 Gradle 和 Maven 项目中,IntelliJ IDEA 提供与 OpenRewrite 的集成,包括代码辅助、专用运行配置以及旨在简化创建和执行 OpenRewrite recipes 的操作。
创建 OpenRewrite 配方
在 项目 工具窗口中,右键点击文件夹(或按 Alt+Insert )并选择 。
在打开的 新建 OpenRewrite 配方 对话框中,输入新配方文件的名称,然后按 Enter。
这将基于专用的 file template创建一个新的配方文件。
提供一个完全限定的、唯一的
name并且,在recipeList下,开始输入您要添加的配方名称。IntelliJ IDEA 为您提供 OpenRewrite 编码辅助功能,包括已知 recipe 名称的自动完成、快速文档查找以及带有 recipe 描述的内嵌提示。

运行 OpenRewrite 配方
打开 OpenRewrite 配方文件。
在边栏中,点击
。
您可以在 运行 工具窗口中查看执行输出。
迁移完成后,点击 显示更改 以预览修改文件列表。 点击其中任何一个以查看所做的更改。

如果这是您第一次运行该 recipe,IntelliJ IDEA 会创建一个临时运行配置,您 可以自定义。
运行内置迁移方案
对于某些框架,IntelliJ IDEA 提供迁移方案,您可以直接从您的构建文件中运行,从而省去手动编写方案的麻烦。 这适用于 Spring 版本低于 3、Quarkus 版本低于 2,以及 Micronaut 版本 3 或更低。
打开您的构建文件:
pom.xml或build.gradle(.kts)。点击编辑器右侧工具栏上的 OpenRewrite 图标
。
或者,在 项目 工具窗口中,右键点击您的构建文件并选择 。
在打开的列表中,选择一个食谱。

这将运行所选的迁移配方。
展开复杂的配方
一个配方可以代表单个操作,也可以由多个其他配方组成。 例如, UpgradeSpringBoot_3_2 方案包含十几个其他方案:除了升级 Spring Boot 的 Gradle 或 Maven 依赖版本,您还必须迁移 Spring Security、Spring Data,更新 API 元素,等等。
使用 IntelliJ IDEA,您可以检索并预览这些作为更复杂配方组成部分的配方。 例如,这允许您删除某些独立操作,如果您想延迟较大迁移的一些部分,或者如果您更喜欢手动实施这些更改。
在 OpenRewrite YAML 文件中,将文本光标置于配方名称处,然后按 Alt+Enter (显示上下文操作)。
选择 内联配方。 只有在配方包含其他配方时,该操作才可用。

OpenRewrite 运行配置
IntelliJ IDEA 配备专用的 OpenRewrite 运行配置。 当您第一次使用器 间距图标 运行食谱时,IntelliJ IDEA 会创建一个临时运行配置。
如果您想自定义 IntelliJ IDEA 启动流程的方式,您可以修改此运行配置或创建一个新的:前往 或按 Alt+Shift+F10。

主要参数
- 名称
为运行配置指定名称。
- 存储为项目文件
将运行配置设置保存到文件中,以便与其他团队成员共享。 默认位置是 .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 的路径。
启动前
选择在启动所选运行/调试配置之前要执行的任务。