Quarkus 1.3.0.Final 发布 - 新类加载器基础设施、GraalVM 20 支持以及更多
如果您还没有注意到,距离我们上次发布 Quarkus 主要版本还不到两个月,因为我们经历了一些广泛的测试阶段来验证我们的新类加载器基础设施。
非常感谢所有测试了我们 Alpha/CR 版本并提供反馈的人。
两个月?在 Quarkus 世界里,这可是一段不短的时间,所以请期待大量新内容。
废话不多说,让我们来看看 1.3 版本带来了什么。
迁移指南
急于迁移现有应用程序?这是我们的 1.3.0.Final 迁移指南。
有什么新功能?
新类加载器基础设施
由于 Quarkus 的创新性(尤其是在我们的测试基础设施和开发模式方面),我们遇到了一些反复出现的类加载问题。
Quarkus 1.3 带来了全新的类加载基础设施,修复了我们遇到的结构性问题。新的类加载基础设施在 类加载参考指南 中有详细描述。
我们在 Alpha 和 CR 阶段对这个新基础设施进行了完善,所以现在它非常稳固。如果您遇到奇怪的类加载问题,请附带重现步骤报告给我们,我们将在即将发布的 1.3.1 版本中包含所有这些修复。
Banner
这可能是最显眼的变化:默认情况下,启动 Quarkus 时会显示一个 ASCII 艺术 Banner。
您当然可以
-
自定义它,
-
为特定项目禁用它,
-
为所有项目全局禁用它。
请参考 文档 获取更多详细信息。
Mutiny 崛起
引入了一个新的响应式编程 API。这个名为 Mutiny 的 API 取代了 Axle 和 Reactive Streams Operators 模型(Reactive Streams 和 CompletionStage)。以前的模型仍然可用,但已弃用,将在未来移除。
如果您想了解更多信息,请参考 响应式入门指南。
轻松部署到 Kubernetes 或 OpenShift
Kubernetes 扩展已经进行了全面改进,现在用户几乎可以毫不费力地将 Quarkus 应用程序部署到 Kubernetes 或 OpenShift。本质上,该扩展现在还负责生成容器镜像(有关更多详细信息,请参阅 容器镜像)并在生成容器镜像后,将生成的 Kubernetes 清单应用到目标集群。
请参考 文档 获取更多详细信息。
新扩展
容器镜像
我们付出了巨大的努力来简化 Quarkus 的容器镜像构建。
我们现在有一组扩展,可以在 Quarkus 构建过程中基于 Quarkus 配置构建镜像,可以使用 Jib、Docker 或 S2I。
有关更多信息,请参阅 容器镜像指南。
OptaPlanner
OptaPlanner 是一个 AI 约束求解器。它优化规划和调度问题。
OptaPlanner Quarkus 扩展将 OptaPlanner 的所有功能带到 Quarkus,甚至可以在原生可执行文件中使用。如果您想了解 OptaPlanner 如何提供帮助,请阅读 OptaPlanner 指南。
Security JPA
想让您的用户存储在由 Hibernate ORM 管理的数据库中吗?只需添加几个注解,Security JPA 扩展 就能满足您的需求。
Qpid JMS
我们现在推荐使用 Qpid JMS 扩展而不是 Artemis JMS 扩展。功能相同,只是增加了更多的灵活性。
Artemis JMS 扩展仍然可用。
有关更多信息,请参阅 JMS 指南。
响应式 MongoDB with Panache
喜欢响应式?喜欢 MongoDB?喜欢简单的代码?
隆重推出响应式 MongoDB with Panache 扩展。有关更多详细信息,请参阅 MongoDB with Panache 文档。
GraalVM 20.0 支持
1.3.0.Final 支持四种 GraalVM 版本
-
GraalVM 19.3.1 - JDK 8
-
GraalVM 19.3.1 - JDK 11
-
GraalVM 20.0.0 - JDK 8
-
GraalVM 20.0.0 - JDK 11
总而言之,对于 Quarkus,您可以使用
|
GraalVM 中的 JDK 11 支持仍处于技术预览阶段。我们方面没有遇到任何特定问题,除了编译速度变慢了约 20%。 |
Hibernate ORM
自动关联管理通过字节码增强功能已从现在开始禁用。
可以通过将 quarkus.hibernate-orm.second-level-caching-enabled
配置属性设置为 false
来禁用二级缓存。
还有更多……
-
Gradle 和 Kotlin 支持方面的多项改进
-
原生可执行构建的
<enableJni>
选项已被弃用并标记为将要移除,因为 JNI 在 GraalVM 19.3+ 中始终启用。 -
Flyway 扩展现在支持
out-of-order
配置属性。 -
我们的 Qute 模板引擎正在不断成熟,并获得了相应的错误修复和改进。
-
我们支持 Keycloak 9。
-
Hibernate Search + Elasticsearch 已升级到 6.0.0.Beta5。
-
您现在可以注入 Quartz 扩展的底层 Quartz 调度器以获得更大的灵活性。
完整更新日志
您可以在 GitHub 上获取 1.3.0.Alpha1、1.3.0.Alpha2、1.3.0.CR1、1.3.0.CR2 和 1.3.0.Final 的完整更改日志。
ADOPTERS.md
为了分享有关 Quarkus 用法的故事,我们在存储库的根目录中添加了一个 ADOPTERS.md
文件。
如果您正在使用 Quarkus 并希望在我们的博客上接受采访或只是添加到此文件中,请与我们联系,我们很乐意效劳。
贡献者
Quarkus 社区正在不断壮大,现在已有 246 位贡献者。非常非常感谢他们中的每一位。
特别感谢为 1.3.0 版本做出贡献的 Akito Kidani、Alex Soto、Alexey Loubyansky、Alvaro Serrano、Andreas Eberle、Andrej Petras、Andrew Guibert、Andy Damevin、Aurea Munoz、Bill Burke、Clement Escoffier、cstdev、Darran Lofthouse、David M. Lloyd、Emmanuel Bernard、Erik Mattheis、Erin Schnabel、Felix Wong、Geoffrey De Smet、George Gastaldi、Georgios Andrianakis、Grzegorz Piwowarek、Guillaume Smet、Gunnar Morling、Gwenneg Lepage、Harald Reinmueller、Harold Sun、Ioannis Canellos、Irena Kezic、Jaikiran Pai、Jakubo96、Jan Martiska、Jason T. Greene、Jesper Skov、Joachim Segala、Johannes、John O’Hara、Jonas Scholz、Jordi Sola、Josejulio Martínez、Justin Lee、Kamesh Sampath、Katia Aresti、Kaxil Naik、Ken Finnigan、Kuzuha Shinoda、Ladislav Thon、Loïc Mathieu、Luca Burgazzoli、Luis F Munoz、Luram Archanjo、Maciej Swiderski、Manyanda Chitimbo、Marc Häbich、Martin Kouba、Martin Panzer、Matej Novotny、Max Rydahl Andersen、Michal Karm Babacek、Michał Szynkiewicz、Miroslav Stary、Nicolas Martignole、Olivier Dufour、Ondrej Machala、Paulo Casaes、Pavol Loffay、Pedro Igor、Peter Palaga、Phillip Kruger、Pierre PLR、Raffael Hertle、Ramakrishna Pattnaik、Rinaldo Pitzer Júnior、Robbie Gemmell、Roberto Cortez、Rohan Maity、Rostislav Svoboda、Sanne Grinovero、Sebastian Wastl、Sergey Beryozkin、Stefnotch、Stuart Douglas、Stéphane Épardaud、testfixer、Thomas Segismont、Timothy Power、Tobias Liese、Tomaz Cerar、Vincent Sevel、Vincent Sourin、Vinícius Ferraz Campos Florentino 和 Yoann Rodière。
加入我们
我们非常重视您的反馈,所以请报告错误,提出改进建议…… 让我们一起构建伟大的东西!
如果您是 Quarkus 用户或只是好奇,请不要害羞,加入我们热情的社区
-
在 GitHub 上提供反馈;
-
编写一些代码并 推送 PR;
-
在 Stack Overflow 上提问。