Quarkus 3.14 - Hibernate ORM 6.6,Let's encrypt,更快的无反射 Jackson 序列化器...
我们很高兴地宣布 Quarkus 3.14.1 发布(我们跳过了 3.14.0 的发布,所以 3.14.1 实际上是第一个 3.14 版本)。
我们在八月份一直在忙于改进 Quarkus,这个版本带来了许多激动人心的新功能。
-
#41359 - 升级到 Hibernate ORM 6.6 / Search 7.2 / Reactive 2.4
-
#40329 - 加速 Hibernate ORM 对大型模型的增强
-
#42105 - Let's Encrypt 支持
-
#41063 - 生成更快的无反射 Jackson 序列化器
-
#41249 - 初始 gRPC CLI
-
#42097 - 将 UBI 镜像更新到 1.20/8.10
-
#37034 - 装饰开发模式错误页面的堆栈跟踪
-
#42409 - Vert.x HTTP:在 HTTP 服务器启动时执行自定义逻辑
-
#42519 - 接受已签名的 OIDC UserInfo
-
#42445 - 将 MongoDB 客户端升级到 5.1.3
-
#42141 - 重新实现扩展注解处理器
-
#41648 - 使 mvnd 1.x 生效并要求 Maven 3.9.6 来构建 Quarkus
此外,如果您已经更新到 Quarkus 3.13 并迁移到 @WithTestResource
,请查看本节。
更新
要更新到 Quarkus 3.14,我们建议更新到最新版本的 Quarkus CLI 并运行
quarkus update
请注意,quarkus update
可以将您的应用程序从任何 Quarkus 版本(包括 2.x)更新到 Quarkus 3.14。
有关您需要对应用程序进行的调整的更多信息,请参阅 Quarkus 3.14 迁移指南。
有什么新功能?
走向 Quarkus 3.15 LTS
我们已经宣布过,Quarkus 的下一个 LTS 版本将是 Quarkus 3.15。
它将直接从 3.14 分支创建,并将是我们 3.14 工作进行的直接延续。
所以不要期望 3.15 中会有新功能,我们将专注于错误修复。
Hibernate ORM 6.6 / Search 7.2 / Reactive 2.4
我们将 Hibernate 堆栈升级到了最新最棒的版本。
鉴于这些新的次要版本带来了新功能和一些行为上的变化,我们强烈建议如果您在 Quarkus 应用程序中使用 Hibernate 堆栈,请查看Quarkus 3.14 迁移指南。
感谢一位贡献者提供了一个在开源许可下的实体模型,我们还能够优化 Hibernate ORM 对大型模型的启动速度,如果您有一个大型实体模型,您应该会在 Hibernate ORM 启动时间上看到显著的改进。
Let’s encrypt
我们最近引入的 TLS 注册中心获得了对 Let's encrypt 证书的便捷管理,部分得益于一个不错的 Quarkus CLI 插件,该插件允许生成 Let's encrypt 证书。
您可以在我们的TLS 注册中心参考指南中了解更多关于它的信息。
更快的无反射 Jackson 序列化器
我们都喜欢代码运行得很快。Jackson 的默认序列化虽然非常高效,但它使用了反射,这会带来一些开销。
在 Quarkus 3.14 中,您可以为 Quarkus REST 将要序列化的类型生成更快的无反射序列化器。Jackson 有很多功能,并非所有功能都得到支持,但这项新功能足够智能,如果您的类使用了我们不支持的 Jackson 功能,它会默认使用标准的 Jackson 序列化。
此选项仍处于实验阶段,默认禁用,但我们希望您能尝试测试它并反馈(它对您有效吗?是否需要添加一个新功能才能让您使用它?)。您可以在REST 参考指南中找到更多关于它的信息。
gRPC CLI
您知道我们非常关注 Quarkus 的开发体验。这种出色的开发体验的一部分是 Quarkus CLI,它在每个版本中都带来了越来越多的功能。
在 3.14 中,我们引入了一个 gRPC CLI 插件,如果您正在使用 Quarkus gRPC 扩展,它可能会让您的生活变得更好。
您可以在此处看到一些使用示例。
Vert.x HTTP:在 HTTP 服务器启动时执行自定义逻辑
这是一个很受欢迎的要求,我们现在提供了一种简单的方式来在 HTTP 服务器启动后执行一些代码。
您可以在HTTP 参考指南中找到所有关于它的信息。
扩展注解处理器
这仅对扩展开发者感兴趣,但我们重写了扩展注解处理器,以获得更清晰的架构,特别是对于所有与生成配置属性文档相关的内容。
这种新架构会生成一个配置模型,然后我们可以将该模型输出为各种格式(您知道的 Asciidoc 输出,也包括供 IDE 使用的文件……)。
您可能需要调整您的扩展构建文件 - 但更改非常小,并且已记录在迁移指南中。
如果您遇到此新扩展注解处理器的问题,请在我们的跟踪器中打开一个问题。
构建 Quarkus
构建 Quarkus 本身(而不是您的 Quarkus 应用)现在需要 Maven 3.9.6。强烈推荐 Maven 3.9.9,因为它包含了一些针对我们特定用例的内存使用改进。
也支持 Mvnd 1.0.2。
至于您的 Quarkus 应用,您仍然可以使用 Maven 3.8.6+ 来构建它们。
WithTestResource/QuarkusTestResource
在 Quarkus 3.13 中,我们引入了 WithTestResource
来替换已被弃用的 QuarkusTestResource
。
两者唯一的区别是,使用 WithTestResource
注册的测试资源默认仅限于被注解的类(而您之前必须为 @QuarkusTestResource
显式设置)。这种新的默认行为实际上导致了几个重要问题,我们决定需要一些时间来使其更好地工作。
虽然只有默认值会导致问题(如果您隔离所有测试资源与 QuarkusTestResource
,您也会遇到同样的问题),但一个默认值很重要,因为它传达了这是我们推荐的做法。在这种情况下,默认隔离所有测试资源会让您的测试速度不必要地变慢,并且可能会消耗大量内存。
在 3.14 中,WithTestResource
仍然存在,但我们撤销了 QuarkusTestResource
的弃用,我们建议暂时使用 QuarkusTestResource
。如果您已经迁移到 WithTestResource
,则无需撤销此更改,它将继续工作。
非常感谢那些报告了此问题的 Quarkus 用户,他们提供了很棒的重现步骤,这真的很有帮助。
平台组件升级
Camel Quarkus
Camel Quarkus 已更新至 3.14。您可以在发布说明中找到您需要了解的所有信息。
Quarkus CXF
Quarkus CXF 3.14 已发布,现在可在Quarkus Platform 3.14中使用。请查看Quarkus CXF 3.14.0发布说明,了解此版本的新增内容。
完整更新日志
您可以在 GitHub 上获取3.14.0.CR1和3.14.0以及3.14.1的完整变更日志。
贡献者
Quarkus 社区正在不断壮大,现在已有984 位贡献者。非常感谢其中的每一位。
特别是对于 3.14 的发布,感谢 Ales Justin, Alex Martel, Alexey Loubyansky, Andy Damevin, Auri Munoz, bdeneuter, Bill Burke, Bruno Baptista, Chris Cranford, Christian Navolskyi, Clement Escoffier, Cristiano Nicolai, Danilo Piazzalunga, Diego Pedregal, Dmitry Kryukov, Eric Deandrea, Falko Modler, Felix König, fivecut, Foivos Zakkak, Fouad Almalki, franz1981, frne, Galder Zamarreño, George Gastaldi, Georgios Andrianakis, Guillaume Smet, Gunther C. Wenda, Holly Cummins, holomekc, Ioannis Canellos, Jakub Jedlicka, James Cobb, Jan Martiska, Jerome Prinet, Jimy Navarro Cordova, Jorge Solórzano, Katia Aresti, Konrad Durnoga, KS, Ladislav Thon, Laurent Broudoux, Lin Gao, Lorenzo De Francesco, Lu Jun, Luke Morfill, Marc Nuri, Marcelo Ataxexe Guimarães, Marco Bungart, Marek Skacelik, mariofusco, marko-bekhta, Martin Bartoš, Martin Kouba, Matej Novotny, Max Rydahl Andersen, Melloware, Michal Karm Babacek, Michal Vavřík, normalek, Ozan Gunalp, Peter Palaga, peubouzon, Phillip Kruger, Phillip Krüger, polarctos, Robert Stupp, Roberto Cortez, Rolfe Dlugy-Hegwer, Rostislav Svoboda, Sanne Grinovero, Sebastian Schuster, Sergey Beryozkin, Stuart Douglas, Thomas Canava, vsevel, Wel, S.P.A. van der (Stef), xstefank, Yoann Rodière, and Zed Spencer-Milnes。
加入我们
我们非常重视您的反馈,所以请报告错误,提出改进建议…… 让我们一起构建伟大的东西!
如果您是 Quarkus 用户或只是好奇,请不要害羞,加入我们热情的社区
-
在 GitHub 上提供反馈;
-
编写一些代码并 推送 PR;
-
在 Stack Overflow 上提问。