迁移到 Quarkus 3.0 轻而易举
Quarkus 3 现已发布,我们鼓励用户升级他们的应用程序以体验有史以来最好的 Quarkus!团队辛勤工作,带来了许多新功能和性能改进。当然,也存在一些破坏性更改。有关核心扩展中所有重要更改的描述,请参阅 迁移指南。
尽管如此,仍然存在一些繁琐的工作需要完成。Quarkus 3 已更新至最新的 Jakarta EE 10 API,其中包括臭名昭著的将 javax.*
包更改为 jakarta.*
包。如果您的应用程序使用了任何 Jakarta API(很有可能,例如 JAX-RS、CDI、JPA 等),您需要修改代码。此外,如果项目中存在明确的 Jakarta API 依赖项,您还需要更新该依赖项。
当然,您可以手动迁移应用程序。但由于 Quarkus 崇尚开发者快乐,Quarkus Update Tool 前来救援!
这篇博文是在 Quarkus 3.0 发布后不久撰写的。从那时起,情况已有所发展。 有关如何更新到最新 Quarkus 的更多信息,请查看 专用指南。 您也可以在 我们的 wiki 中找到所有迁移指南。 |
Quarkus Update Tool - 摘要
-
安装 Quarkus CLI 或确保已安装最新版本
-
运行
quarkus update
-
检查工具所做的更改
-
享受成果!
Quarkus Update Tool - 完整介绍
该更新工具旨在帮助开发人员顺利地将应用程序迁移到 Quarkus 3。更新过程可以从 Quarkus CLI 触发,也可以直接通过 Maven 或 Gradle 命令触发。该工具本身基本上是一套 OpenRewrite 转换规则。大多数规则定义在 Quarkus Update Recipes 项目中。
更新工具具体做了什么?
-
更新 Quarkus 版本
-
转换源代码以使用
jakarta.*
包 -
将 Quarkiverse 扩展升级到与 Quarkus 3.0 兼容的版本
-
将 Java EE API 依赖项更新为 Jakarta EE API 版本
-
调整一些常见依赖项(例如 Jackson 和 Hibernate)
-
转换某些配置属性的配置文件(例如,将
quarkus.kubernetes.host
改为quarkus.kubernetes.ingress.host
) -
重命名一些常见的服务提供商(例如,将
/META-INF/services/javax.ws.rs.ext.Providers
改为/META-INF/services/jakarta.ws.rs.ext.Providers
)
如果父项目导入了 Quarkus Platform BOM,也支持标准的 Maven 多模块项目布局。 |
让我们开始吧。运行更新
quarkus update
./mvnw io.quarkus.platform:quarkus-maven-plugin:3.9.3.Final:update -N
./gradlew -PquarkusPluginVersion=3.9.3.Final quarkusUpdate
如果使用 Quarkus CLI,请务必使用最新版本。quarkus version 命令应输出版本 3+。 |
请注意,没有“试运行”模式。换句话说,一旦触发更新,更改将立即写入文件系统。但是,您可以利用源代码管理工具来查看应用的转换。例如,如果您使用 Git,请运行更新工具,然后执行 git diff
命令来查看更改。如果出了问题,只需使用 git checkout .
来撤销更改。
如果您的应用程序依赖于 Hibernate ORM,那么专门的 Hibernate ORM 5 到 6 迁移指南将会很有帮助。 |
就是这样。您的应用程序现在应该准备就绪了。如果遇到任何问题,请在 Zulip 上联系我们或提交一个 新问题。