该变体需要对项目进行最少的调整

Unlock business potential through effective first dataset management solutions.
Post Reply
suchona.kani.z
Posts: 246
Joined: Sat Dec 21, 2024 5:46 am

该变体需要对项目进行最少的调整

Post by suchona.kani.z »

从 Spring Boot 2.7 到 Spring Boot 3.2 的迁移包含许多单独的步骤。 Spring Boot 团队在迁移指南中定期描述这些步骤。该团队还支持 Open Rewrite 迁移脚本的开发。由此产生的迁移总结在 Java/Spring/Boot3 类别的配方目录中。

迁移到 Spring Boot 3.2 配方对我们的迁移特别有趣。除了一些类的更改之外,向 String Cloud、Spring Security 和 Virtual Threads 的迁移尤其引人注目。这可以让我们了解迁移的实际范围。为了减少开发人员的工作量,该配方确保应用程序首先迁移到 Spring Boot 3.1。这个迁移链可以追溯到Spring Boot 2.0。这意味着之前被遗忘的迁移也被执行。要开始迁移,需要使用 Maven 的 CLI 变体。

并且特别紧凑。几分钟后,自动迁移完成,已迁移18个文件。除了应用程序类之外,这些文件还包括 pom.xml 和包含的 GitHub Actions。然而,项目的初始构建失败了。

在开发软件时,问题会一次又一次地出现,即使 Open Rewrite 也无法摆 贷款人员电子邮件列表 脱这些问题,尽管测试覆盖率很高。然而,这些问题部分是由用户造成的。除此之外,迁移后的第一次构建会失败,因为格式不正确。感谢 spring-javaformat-maven 插件,这个问题可以通过目标 apply 快速解决。或者,可以在 Open Rewrite 中配置合适的样式。

由于 Open Rewrite 中的错误,新的构建尝试失败。使用依赖项jakarta.xml.bind:jakarta.xml.bind-api,但未在 pom.xml 中声明。添加依赖后,项目就可以构建并测试成功。

结论
任何具有 Spring Boot 经验的开发人员都应该能够在短时间内解决这两个挑战。通过使用 Open Rewrite,从 Spring Boot 2.7 迁移到 Spring Boot 3.2 所需的工作量减少到不到一个小时。如果迁移是手动完成的,工作量会显着增加。除了主要的 Java 框架 Spring、Quarkus 和 Jakarta EE 之外,Open Rewrite 还支持 Javascript 和 Node.js、Python、Terraform 以及来自现代和传统软件系统的许多其他技术。由于现有方案库很大,许多大型迁移可以通过 Open Rewrite 高效地执行。如果需要调整或新配方,可以通过测试驱动和定制的方式进行开发。

这些进一步的主题将在另外两篇博客文章中更详细地讨论。

您想了解更多关于 adesso 世界中令人兴奋的话题吗?那么请看一下我们之前发布的博客文章。

图片 Merlin Bögershausen
作者 梅林·博格斯豪森

Merlin Bögershausen 是亚琛 adesso 的软件开发人员、演讲者和作家。他负责 Java 世界的创新和公共部门的软件开发。
Post Reply