开发过程于 2022 年 3 月 18 日开始,其雄心勃勃的目标是重写整个树以迁移到新包jakarta.*并采用 Jakarta EE 10。向 Jakarta EE 10 的转变有两个主要好处:它与更广泛的 Java 生态系统的迁移保持一致对 Jakarta 的依赖,使共享和兼容实现更容易;它引入了CDI Lite和 Build Compatible Extensions (BCE),用于跨 CDI 实现兼容的标准扩展,受益于 Quarkus 构建时间优化。
Quarkus 3.0 首次推出经过改进的 Dev UI,提供更具可扩展性和用户友好性的体验以及改进的外观和感觉。虽然并非所有扩展都已迁移到新的 Dev UI,但仍然可以在/q/dev-v1访问旧的 Dev UI ,但它计划在未来的版本中删除。Quarkus YouTube 频道播放列表演示了新的 Dev UI,突出了它的功能以及如何使用和扩展它。
Quarkus 3.0 将 Hibernate ORM 从 5.0 版升级到 6.2 版,这带来了许多变化,其中一些是中断的。升级到 Hibernate ORM 6.0 需要一些努力和测试,建议开发人员查阅Hibernate ORM 6.2 更新指南以获取指导。Hibernate Reactive 也已更新到 2.0 版本,以保持与 Hibernate ORM 6 的兼容性。
Quarkus 3.0 通过改进CLI、Maven 和 Gradle 插件增强了开发人员的体验,包括无需更改项目依赖项或配置即可将 Quarkus 应用程序部署到 Kubernetes、Knative 和 OpenShift 等平台的能力。它现在支持Maven 3.9和Gradle 8.0,Maven 3.8.2 是 Quarkus 3 项目的最低要求。CLI 命令示例如下:
Eclipse MicroProfile 6.0 现在与 Jakarta EE 10 Core Profile 保持一致,并将 MicroProfile OpenTracing 替换为 MicroProfile Telemetry。RESTEasy Reactive 是反应式和阻塞式工作负载的默认 REST 层,已经更新了可用性增强功能,包括检索所有多部分的能力。此外,OpenTelemetry 扩展已经过改进以支持 SDK 自动配置,其配置命名空间更改为quarkus.otel.*. 此更新简化了为 JDBC 启用 OpenTelemetry 的过程,只需要用户将属性设置quarkus.datasource.jdbc.telemetry为true,而无需修改 JDBC 连接 URL。
由于 OpenJDK 社区对 Java 11 的积极支持将于 2023 年 9 月结束,因此 Quarkus 已将其标记为已弃用。虽然核心 Quarkus 功能将在该日期之后继续支持 Java 11,但鼓励开发人员升级到 Java 17 或更高版本以获得最佳 Quarkus 体验。
为了帮助开发人员将他们的项目更新到 Quarkus 3.0,提供了一个全面的迁移指南,以及一个专门的 Hibernate ORM 6.2 更新指南。Quarkus 3.0 还引入了一个更新工具,可以将更新项目中涉及的大部分繁琐工作自动化,包括调整包名、更新依赖项和配置文件、升级 Quarkiverse 扩展以兼容 Quarkus 3.0。
总之,Quarkus 3.0 的发布标志着 Java 生态系统向前迈出了重要一步,为开发人员提供了增强的体验以及大量的新功能和改进。Quarkus 3.0 专注于开发人员体验、性能和可扩展性,可以巩固其作为希望在快速发展的技术环境中构建弹性和高效应用程序的 Java 开发人员的首选的地位。