Quarkus 3.0.0.Alpha5 发布 - 现已支持 Hibernate ORM 6、新的 Dev UI 等!

我们正在为 Quarkus 3 的发布做准备 - 随着最新的 Alpha 版本,我们的主分支已经迁移到 Jakarta EE 10,以便我们能更快地集成和测试更多功能。这次我们从 Hibernate 5 迁移到 Hibernate 6 - 这**将**会引起一些破坏性的更改,因此如果您是 Hibernate ORM 用户,尤其是 Hibernate Reactive 用户,请务必阅读下文详情!

最重要的是,还有一个全新且改进的 Dev UI!

newdevui

本次发布的主要亮点包括:

Hibernate ORM 6

Hibernate ORM 6 是 Quarkus 主要持久化层的一次重大升级。它带来了许多改进和新功能,但也包含一些破坏性更改。我们将尽最大努力使迁移过程尽可能平滑,但有些更改是不可避免的。

我们已经开始为 Quarkus 用户编写一份 Hibernate ORM 5 到 6 的迁移指南,以帮助您完成迁移。

请特别注意 “尽最大努力的 Hibernate ORM 5.6 兼容性切换”,这可以减少 Hibernate 6 中默认模式更改的影响,并为您提供更多迁移时间。

我们希望改进和简化这些迁移步骤,为 Quarkus 3 做准备,因此如果您在迁移过程中遇到任何问题,请 报告,以便我们改进迁移文档和脚本。

Hibernate Reactive 暂时禁用

Hibernate Reactive 2 的早期 Alpha 版本正在积极开发中,但不幸的是,目前还无法使用。

为了能够尽早收集 Quarkus 其他部分的使用反馈,我们在 Alpha5 版本中排除了 Hibernate Reactive。我们正在努力在未来的某个版本中重新启用它。

注入 Hibernate StatelessSession

Hibernate 中我最喜欢的、鲜为人知的功能之一是 `StatelessSession`,它是一个不跟踪任何状态的轻量级会话。它非常适合批量处理,也适合那些偏爱面向命令用例(insert, delete, update, ...)而不是托管实体的用户。

在此版本之前,您必须手动配置它 - 在 Quarkus 3 中,您现在可以简单地注入一个 `StatelessSession`。

@Inject
StatelessSession statelessSession;

您可以在 Hibernate ORM 指南中阅读有关 `StatelessSession` 的更多信息。

新的 Dev UI

Quarkus 2 引入了 Dev UI,它提供了一个用于开发的 Web UI。扩展可以提供自己的 Dev UI 页面以提供附加功能。

Quarkus 3 现在拥有了一个新的 Dev UI,它更具扩展性且更易于使用。它还拥有新的外观和感觉。

目前,新的 Dev UI 运行在 https://:8080/q/dev-ui

旧的 Dev UI 仍然是默认的,因为并非所有扩展都已迁移。

我们在 Quarkus YouTube 频道上有一个 播放列表,展示了新的 Dev UI,解释了新功能以及如何使用和扩展它。

所有开发工具中的 `quarkus deploy`

Quarkus CLI 以及 Maven 和 Gradle 插件现在都具有 `deploy` 的能力。

quarkus deploy
mvn quarkus:deploy
gradle deploy

这使得 Quarkus 应用程序能够部署到 Kubernetes、Knative 和 OpenShift 等平台。所有这些都无需更改项目依赖项或配置,从而简化了开发人员的体验。

尝试 Quarkus 3

目前,最简单的入门方法是使用 code.quarkus.io 或使用 Quarkus CLI

quarkus create app --stream=3.0

请注意,在此阶段,虽然所有核心扩展都可用,但只有 Quarkus 平台的部分可用。 并非所有扩展都已迁移到 Jakarta 包(例如,Camel Quarkus 或 Kogito 尚未可用)。

升级到 Quarkus 3

对于所有扩展都可用的现有应用程序,我们有一个 OpenRewrite 配方,您可以尝试。

有一个单行命令尝试使用 JBang 脚本自动执行此操作。

如果您已经安装了 JBang,请运行

jbang --fresh upgrade-to-quarkus3@quarkusio

如果不是,对于 Linux 和 macOS

curl -Ls https://sh.jbang.dev | bash -s - --fresh upgrade-to-quarkus3@quarkusio

对于 Windows

iex "& { $(iwr https://ps.jbang.dev) } --fresh upgrade-to-quarkus3@quarkusio"

运行此命令后,您的项目应该已更新其依赖项、源代码和文档以使用 Quarkus 3。

如果它对您不起作用,可能是我们遗漏了一些内容,或者您正在使用尚不支持 Quarkus 3 的扩展。

无论哪种情况,请告知我们,以便我们可以共同改进迁移脚本。

加入我们

我们非常重视您的反馈,所以请报告错误,提出改进建议…… 让我们一起构建伟大的东西!

如果您是 Quarkus 用户或只是好奇,请不要害羞,加入我们热情的社区