Quarkus 2.0.0.Final 发布 - Vert.x 4, MicroProfile 4, 持续测试等

Quarkus 团队自豪地宣布 Quarkus 2.0 的最终版本可用。

此版本付出了巨大的努力,将 Quarkus 提升到一个全新的水平,同时保留了其核心优势:快速启动、低内存占用和开发者愉悦感。

非常感谢社区中的每一位参与者、贡献者、测试人员……此版本是团队合作的成果,没有你们的支持就不会如此出色。

迁移指南

好消息是,升级到 Quarkus 2.0 的工作量非常小,并且一如既往,我们提供了一个 迁移指南 来帮助您。

如果您在升级到此新版本时遇到任何问题,请报告给我们,以便我们修复它或将信息添加到指南中。

有什么新功能?

我们已经在 Alpha/CRs 的公告中介绍了此版本的新特性,但这里是此版本新特性的摘要。

您也可以看看本周的 Quarkus Insights 《Quarkus 2.0 Launch Party》,有多位 Quarkus 贡献者讨论了新功能。

JDK 11 作为最低版本

JDK 11 是使用 Quarkus 2.0 的最低版本。

不再支持 JDK 8 (但如果您仍在使用它,可以继续使用 1.13.x!)。

GraalVM 21.1

GraalVM 21.1 是 Quarkus 2.0 的推荐版本。

Vert.x 4

Vert.x 是 Quarkus 的核心。

Quarkus 2.0 引入了 Vert.x 4。您可以在 公告“Vert.x 4 新特性”博客文章 中了解更多。

Eclipse MicroProfile 4

MicroProfile 4 是最新的 MicroProfile 规范

Quarkus 中的所有 SmallRye 组件都已更新到最新和最强大的版本,除了实现 MicroProfile 4 之外,它们还带来了其他新功能。

持续测试

关于这项令人惊叹的新功能,我将把舞台交给它的作者 Stuart Douglas。

此版本包含一项改进开发者生产力的新功能:持续测试。它允许在开发模式下自动运行测试,可以通过在控制台中按 r 键(或通过 Dev UI)启用。如果您启用测试,您的测试套件将在开始时运行一次,然后随着您的编码,持续测试将运行您的测试,并告诉您您的更改是否会破坏任何测试。这将为您提供对更改的即时反馈,而无需切换到浏览器。我们尽可能只运行与已更改代码相关的测试。

此功能还引入了一些可能影响您应用程序的更改

  • 用于测试的类加载模型现在与开发模式相同(因为测试需要热重载),如果这对您的应用程序造成问题,您可以设置 quarkus.test.flat-class-path=true 来恢复旧模型,但这将禁用持续测试。

  • 如果检测到兼容的终端,Quarkus 将在控制台窗口底部显示状态消息,并响应输入,而无需按 Enter。如果这干扰了您的应用程序,可以通过 quarkus.test.basic-console=true 禁用(请注意,Gradle 目前始终使用基本控制台)。

  • 如果您不希望在控制台中看到任何测试输出,只想通过 Dev UI 进行交互,您可以设置 quarkus.test.console=false

持续测试是 Quarkus 中开发者创新传统的一部分。因此,我们渴望听到您对此的反馈以及如何使其变得更好。

这是展示持续测试的视频

Quarkus CLI

历史上,您使用 Maven 或 Gradle 命令与 Quarkus 项目进行交互。这很快就会结束,因为 Quarkus 2.0 引入了一个全新的、改进的 Quarkus CLI。

我们仍在努力将其发布到所有地方,以便在所有系统上轻松使用,但您已经可以使用 JBang 来运行它了。

更多详情请参见 专门的 CLI 指南

其他值得注意的功能

  • Quarkus 现在通过 SmallRye GraphQL Client 扩展 提供 GraphQL 客户端。

  • Hibernate ORM 已升级到 5.5,Hibernate ORM 扩展现在支持元数据贡献者。

  • ArC,我们的 CDI 实现,支持 CDI 装饰器。

  • MongoDB with Panache 现在支持事务。

  • 我们的 Kotlin 支持得到了一些不错的增强:RESTEasy Reactive、REST Client 和 Reactive Messaging 扩展现在支持协程。

  • 添加了一个 Amazon SSM 扩展

完整变更日志

您可以在 GitHub 上获取导致此最终版本发布的各个中间版本的完整变更日志

贡献者

Quarkus 社区正在不断壮大,目前已有 496 位贡献者。非常非常感谢其中的每一位。

特别感谢 2.0 版本的所有贡献者:0SkillAllLuck、Adrian、adrianfiedler、Alexandre Dutra、Alexey Loubyansky、Amos Feng、Andy Damevin、Andy Fedotov、Anoop Krishnakumar、antoniodvr、Arjan van Balken、bcournaud、Bernhard Lutzmann、Bill Burke、Bruno Leonardo Gonçalves、Bryan Varner、Cem Nura、Chris Laprun、Christopher Chianelli、Clement Escoffier、Cristian Morales Alvarez、Daniel Schmidt、David Andlinger、David M. Lloyd、Davide、Davide D’Alto、Dominika Vagnerova、Duncan Doyle、Elshad Kasumov、Elvys Soares、Emmanuel Bourg、Eric Deandrea、Erik Mattheis、Erin Schnabel、essobedo、Ethan J. Gallant、Falko Modler、Felix Seifert、Foivos Zakkak、Fred Bricon、Gabriel Landais、George Gastaldi、Georgios Andrianakis、Gerald Venzl、Guillaume Le Floch、Guillaume Smet、Gwenneg Lepage、Gytis Trikleris、Ioannis Canellos、Ismail BASKIN、Jaikiran Pai、Jan Martiška、Jason Lee、Jason T. Greene、jjaferson、Johan Westerlund、Jorge Solórzano、Jose、Joshua Roys、Juan Zuriaga、Julien Ponge、Justin Lee、Karsten Wintermann、Katia Aresti、Ken Finnigan、Kevin VIET、Kevin Wooten、Knut Wannheden、Kyrylo Shpak、Ladislav Thon、Leonardo、Loïc Mathieu、Luca Masini、luneo7、Maciej Swiderski、manusa、Manyanda Chitimbo、Marco Bungart、Markus Kowalkowski、Markus Thömmes、markusdlugi、Martin Kouba、Matej Novotny、Matej Vasek、Matt Welke、Mattia Forcellese、Max Rydahl Andersen、Mayank Kunwar、Michael Simons、Michał Szynkiewicz、Mikhail Fedorov、Mingyuan Wu、NetoDevel、Nuno Caro、Ondra Chaloupka、Paul Carter-Brown、Pedro Igor、Peter Palaga、Petr Hála、Phillip Krüger、Rafael T. C. Soares、Ramesh Devaraj、Renato Pereira Back、René Grob、Rhuan Rocha、Richard Thomas、Roberto Cortez、Ron Sigal、Rostislav Svoboda、ruromero、Sanne Grinovero、SaumyaSingh1、Sergey Beryozkin、Severin Gehwolf、Stuart Douglas、Stéphane Épardaud、Sven Kattelans、Thomas Segismont、Tomas Hofman、Vadzim Hushchanskou、Vincent Sevel、Vinod Anandan、Frank Wippermueller、xstefank、Yoann Rodière、Yoshikazu Nojima 和 Youri Bonnaffe。

加入我们

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

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