Quarkus 3.0.0.Alpha1 发布 – Jakarta EE 10 版本的首个迭代

我昨天发布了一篇更详细的博客文章,解释了我们如何构建 Quarkus 3 版本。

现在是时候宣布 Quarkus 3.0.0.Alpha1 了,这是我们 Quarkus 3 版本的第一个迭代。

Quarkus 3.0.0.Alpha1 的一些要点

  • 它基于 Quarkus 2.13.3.Final,因此拥有该版本的所有功能。

  • 它面向 Jakarta EE 10,除了 JPA,我们仍然以 EE 9 为目标。因此,我们仍然使用 Hibernate ORM 5.6。

从 Quarkus 3 的主要目标来看,有些尚未实现

  • Eclipse MicroProfile 6 – 它甚至还没有发布,所以这不出所料

  • 切换到 Flow API 而不是 Reactive Streams – 这正在进行中

  • 如前所述,Hibernate ORM 6

由于上游问题,一些功能尚无法正常工作

  • REST Assured 仅支持 Jackson,不支持 JSON-B,因为没有支持 jakarta.* 包的 REST Assured 版本。

Alpha?

我们将此版本命名为 Alpha1,因为它仍在开发中,但不包含任何实验性内容。

这是一个非常稳定的 2.13.3.Final 版本,迁移到了 Jakarta EE 10,并进行了一些小的添加。

因此,它应该已经非常可用了。

尝试 Quarkus 3

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

quarkus create app --stream=3.0

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

升级到 Quarkus 3

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

有一个单行程序尝试使用 JBang 脚本自动执行此操作

适用于 Linux

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"

使用 JBang 脚本也会迁移文档(以 Markdown on AsciiDoc 格式)。

这是首选方法,因为下面介绍的方法只会迁移源代码。

您也可以手动执行此操作,方法是下载 OpenRewrite 配方 并使用以下 Maven 命令手动应用它

curl -o quarkus3.yml https://raw.githubusercontent.com/quarkusio/quarkus/main/jakarta/quarkus3.yml
mvn org.openrewrite.maven:rewrite-maven-plugin:4.39.0:run \
   -Drewrite.configLocation=quarkus3.yml \
   -DactiveRecipes=io.quarkus.openrewrite.Quarkus3

对于多模块项目,建议在 -Drewrite.configLocation 参数中指定绝对路径,以便子模块可以找到迁移描述符。

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

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

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

加入我们

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

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