OpenRewrite 配方驱动代码迁移
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/run-recipe-driven-codebase-migrations-and-framework-upgrades-with-reviewable-diffs-through-openrewrite。
技能介绍
它解决什么问题
在大型代码库里做框架升级(比如把 Spring Boot 2 升到 3、替换废弃 API、统一代码风格)时,团队往往靠手写一次性脚本或大范围 sed 替换。这类改动量巨大、逻辑混杂,生成的 diff 很难逐条审查,reviewer 只能整体接受或整体驳回,回归风险很高。这个技能基于 OpenRewrite,把迁移工作从「手工改代码」变成「配方驱动的重构」,让每一次变更都以可审计、可 review 的差异形式落地。
技能如何工作
- 复用预置配方:OpenRewrite 自带一批开源重构 recipe,覆盖常见框架迁移、安全修复与风格统一任务,直接套用即可,不必从零编写转换逻辑。
- 源码树变换:配方作用于语言的源码树(LST),按结构而非纯文本做匹配与替换,避免误伤注释和字符串内容。
- 输出可审查 diff:所有改动生成标准差异,可以逐条对照原始代码评审,而不是一坨混合的改动。
- 支撑多仓库扩展:针对超大代码库或多仓库场景,可借助 Moderne 平台以更高效率运行同一套 recipe 目录。
适用边界与注意点
- 配方目录只覆盖高频场景,长尾迁移仍需要团队自己编写
Recipe。 - 升级通常是破坏性变更,改完后必须跑完整的构建与测试,而不是只看 diff 是否干净。
- 配方行为可能随上游版本演进,升级 OpenRewrite 本身也需要纳入审查流程。
- 需要 Java、Gradle 或 Maven 环境,不适用于非 Java 项目。
使用场景
- 把 Spring Boot 2 升级到 3,需要安全替换大量废弃 API 调用并让每个改动可逐条审查
- 多仓库 Java 项目要统一代码风格,手动逐库修改工作量太大,希望用配方一次性批量处理
- 团队需要将安全漏洞修复应用到整个代码库,要求每个补丁能单独审查和回滚
适合人员
- 维护大型 Java 项目的后端工程师,需要定期完成框架大版本升级但担心引入回归风险
- 管理多仓库技术栈的技术负责人,希望统一各仓库代码规范但缺乏人力逐库手动修改
- 负责安全合规的工程师,需要将漏洞修复批量应用到代码库并留存完整的审计记录