OpenRewrite就是为此而生的。OpenRewrite是什么OpenRewrite是一个专为大规模代码变更设计的自动化重构引擎,最初由Netflix内部孵化,现在由Moderne维护。 既然有AI,为什么还需要OpenRewrite这是个合理的质疑。 OpenRewrite在这两点上恰好是AI的对立面:同一个Recipe,在任意规模的代码库上运行,结果完全一致、完全可预测。 恰恰相反——在这次迁移里,有两处问题是OpenRewrite处理不了的,最终还是靠AI辅助解决的。后面会讲到。 =org.openrewrite.recipe:rewrite-spring:LATEST\-Drewrite.activeRecipes=org.openrewrite.java.spring.boot3
spring boot2升级boot3整体流程如下1、借助于开源的自动化代码重构工具OpenRewrite,快速地进行代码重构等2、相关坐标升级更改3、配置文件属性更改4、打包、构建与运行验证1. 使用OpenRewrite升级SpringBoot项目对原项目代码进行重构,快捷升级可以使用OpenRewrite插件对项目进行改写,能自动升级如下:* javax 写法自动转为 jakarta* 部分旧包 插件依赖相关执行后3、升级jdk、Maven、boot相关版本2.1 添加OpenRewrite相关依赖重要:使用插件前要保证原项目没有经过更改,以及改过相关依赖坐标等。 -- activeRecipes标签用于指定要执行的OpenRewrite recipes --> <activeRecipes> <! 可能需要手动调整一些OpenRewrite无法自动处理的部分3.
例如,在不同语言生态中都出现了成熟的 AST 工具: Java – OpenRewrite:通过规则化的 recipe 文件实现对 Java 代码的批量迁移,适用于 Spring 升级、日志框架替换等场景 如下是通过 AI 生成 rewrite.yml: type: specs.openrewrite.org/v1beta/recipe name:MigrateSlf4jToPLogger displayName :Migrate SLF4J Logger to PLoggerSingleton recipeList: - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName 而除了生成规则的方式,我们也可以直接生成 迁移用的代码,比如直接使用 OpenRewrite 的 Java API 来进行迁移。 HTML 处理:Jsoup(如需要) 6.代码迁移:OpenRewrite(用于语言版本迁移) 通过反复的迭代和测试,这个原型可以帮助我们快速验证思路,并在此基础上构建更复杂的 AI Agent 工具
PreviousNext 对 OpenRewrite 的支持 Ultimate IntelliJ IDEA Ultimate 2024.1 集成了 OpenRewrite,这将扩展 IDE 的现有重构功能 借助 OpenRewrite 的资源,您可以现代化遗留代码、优化性能并处理复杂的迁移任务,例如升级到新的 Spring Boot 版本。
中的 *Endpoints*(端点)标签页 Ultimate 针对 HTTP 页眉的代码补全 Ultimate 优化的 JSON 架构处理 Ultimate Quarkus 更新 Ultimate 对 OpenRewrite 对 OpenRewrite 的支持 Ultimate IntelliJ IDEA Ultimate 2024.1 集成了 OpenRewrite,这将扩展 IDE 的现有重构功能,并为您提供一个用于提高代码质量 借助 OpenRewrite 的资源,您可以现代化遗留代码、优化性能并处理复杂的迁移任务,例如升级到新的 Spring Boot 版本。
支持 OpenRewrite 最终的 IntelliJ IDEA Ultimate 2024.1 集成了 OpenRewrite,扩展了 IDE 现有的重构功能,并为您提供了提高代码质量、一致性和可维护性的工具包 使用 OpenRewrite 的秘诀,您可以对遗留代码进行现代化改造、优化性能并处理复杂的迁移任务,例如升级到新的 Spring Boot 版本。
OpenRewrite 我们已经看到了一些代码智能工具的使用案例:例如把一个广泛使用的库迁移到新的 API 版本,了解一个库中刚发现的漏洞对整个企业的影响,以及对从同一模板创建的多个服务应用更新时。 OpenRewrite 是另一个我们想提及的工具。我们的团队已经在 Java 中使用它解决特定的问题,比如更新用入门套件创建的服务。目前它仍在持续拓宽覆盖的语言和使用案例。 重构引擎、捆绑方案和构建工具插件都是开源软件,这使得团队在需要时可以更容易地使用 OpenRewrite。
该版本还进行了依赖项升级,包括:SnakeYaml 2.0、Maven Compiler Plugin 3.11.0、Maven OpenRewrite Maven Plugin 4.41.0、SmallRye
Commonhaus 启动时,已经加入的开源项目包括 Hibernate、Jackson、OpenRewrite、JBang、JReleaser 和 Morphia.。
通过 Spring Boot Migrator 以及基于 OpenRewrite 的工具中对升级的支持,我们在努力帮助社区减少这种工作量。
提供了 OpenRewrite 用于迁移。