Jakarta EE 11 发布:带来 1 个新规范、16 个更新规范与现代化 TCK


虽然 Jakarta EE 11 的完整 GA 版本最初计划在 2024 年 7 月发布,但只有 Core Profile 和 Web Profile 分别于 2024 年 12 月和 2025 年 4 月先行交付。如今,距离 Jakarta EE 10 发布的 34 个月后,Eclipse 基金会 正式宣布发布 了包含 Platform 的 Jakarta EE 11。虽然这次发布可能又被认为是“又一次重大延迟”,但背后有实际原因。

截至 2024 年 5 月,面向 Jakarta EE 11 的 16 个更新规范均已通过各自的评审与 TCK 测试,Jakarta EE 工作组 决定专注于久拖未决的 技术兼容性套件 TCK 现代化与重构。主要工作内容包括构建工具与测试套件的迁移:如 Ant 迁移到 Maven,TestHarness 迁移到 Arquillian。同时,借助开源自动重构工具 OpenRewrite 实现自动化迁移。这项投入带来的好处是提升了兼容性测试能力,并为 Jakarta EE 生态的扩展和测试新增降低了门槛。

Jakarta EE 11 平台 定义了托管所有 Jakarta EE 应用的标准平台,适用于需要 Jakarta EE 全部规范开发企业应用的开发者。平台所包含的规范如下图所示:

Jakarta EE 11 Platform

Jakarta EE 11 Web Profile 定义了 Jakarta EE 平台的子集,专注于开发 Web 应用的相关技术。其包含的规范如下图所示:

Jakarta EE 11 Web Profile

Web Profile 于 2025 年 4 月发布,Eclipse GlassFish 8.0.0-M11 成为其首个兼容实现。

Jakarta EE 11 Core Profile(自 Jakarta EE 10 引入)定义了面向小型运行时的 Jakarta EE 平台子集,适用于微服务和 AOT(提前编译)场景。它为云原生运行时(包括支持构建时应用的运行时)提供最小基础。包含的规范如下图:

Jakarta EE 11 Core Profile

Core Profile 仅含 7 个规范,由于体量小,成为 2024 年 12 月首个发布的 profile。WildFly Preview 34.0.0 和 Open Liberty 24.0.0.11-beta 于 2024 年 10 月下旬提交了兼容性认证请求。

如上图所示,Jakarta EE 11 生态共有 16 个规范获得更新。需要注意,有两个规范进行了更名:Jakarta Validation(原名 Jakarta Bean Validation)与 Jakarta Pages(原名 Jakarta Server Pages)。Jakarta Server Faces 早在 Jakarta EE 10 时已更名为 Jakarta Faces

Jakarta Data 1.0 作为 Jakarta EE 11 Platform 和 Web Profile 的新规范,为数据库技术提供简便访问 API。它可以将持久化逻辑与模型分离,并支持在 Repository 接口上组合自定义查询方法,由框架自动实现。目前的 Jakarta Data 实现包括 Hibernate ORM 6.6.0、Eclipse JNoSQL 1.1.4 和 Open Liberty 24.0.0.6。

Jakarta EE 11 其他值得关注的变更包括:

  • Jakarta Expression Language、Jakarta Persistence 和 Jakarta Validation 规范增加对 Java Record 的支持。
  • Jakarta Concurrency 规范在 JDK 21 下支持虚拟线程(Virtual Threads)。
  • CDI Lite:新增文档以补充 Jakarta Contexts and Dependency Injection 规范,将集成相关内容独立出来,解决规范间循环依赖问题。
  • Jakarta SOAP with Attachments、Jakarta XML Web Services 和 Jakarta XML Binding 规范移除了自 Jakarta EE 10 起的可选特性。
  • 移除对已在 JDK 17 弃用 并在 JDK 24 彻底移除 的 Java SecurityManager 的引用。
  • 移除遗留的 @ManagedBean 注解。

微软 Java 首席架构师、Jakarta EE 11 发布协调人 Ed Burns 在接受 InfoQ 采访时表示:

企业软件开发正处于关键转折点。生成式 AI 推动了产品开发速度的预期,这直接挑战了 Jakarta EE 一贯的、基于标准且缓慢的开发节奏。

虽然 Jakarta EE 11 的发布比我期望的要晚得多,但它体现了我们正迈向更快发展的两个重要方面:

  1. 证明全新技术可以被纳入标准并带来价值。
  2. 完成了 Jakarta EE 历史上最大规模的技术债务偿还。

就第一点来说,Jakarta Data 充分体现了标准的价值:吸取已有经验并服务更广泛的用户群,而不是局限于某单一厂商。

就第二点而言,Jakarta EE TCK 已迁移至当前主流测试技术,摆脱了对一个自 JUnit 普及前就无人维护的测试工具的依赖。

Jakarta EE 11 还有许多其他增量改进,对于一个强调稳定与 IT 投资保护的技术而言,这再合适不过。

2023 年 3 月,Payara CEO Steve Millidge 曾撰文指出 Jakarta EE 11 可能是“Jakarta 的第一次重大飞跃”:

从最初的迁移(Jakarta EE 8),到新的命名空间(Jakarta EE 9),再到简化工作(Jakarta EE 10),Jakarta EE 已为开源开发者打下坚实基础。

如今,机会来了。Jakarta EE 可借助 Java 21 等新特性,持续构建新规范,进一步统一并简化平台,真正迈出 Java EE 时代。

对于 Jakarta EE 11 来说,在拥有新规范和全新 TCK 的同时,Millidge 两年前的展望似已逐步实现。

更多关于 Jakarta EE 11 新特性的介绍,可阅读 Eclipse 基金会 Jakarta EE 项目经理 Tanja Obradovic 的官方博客。

号外: 对 JakartaEE 感兴趣的同学,不要错过本年度 JakartaONE 2025在线会议,请移步注册:https://www.eventbrite.com/e/jakartaone-livestream-2025-tickets-1394939173619


相關推薦

2025-06-28

开发人员生产力和整体性能方面的进步。主要亮点包括:现代化的测试兼容性工具包 (TCK)、全新 Jakarta Data 规范的引入、对现有规范的重大更新以及对最新 Java LTS 版本的支持,使开发人员能够充分利用 Java 21 中的增强功能,包括

2025-04-11

带来了更强大的功能支持,还为开发者提供了更加高效、现代化的开发体验。 当前,Jakarta Platform 代码库已经加上了正式版本 Tag,这标志着继 Core Profile、Web Profile 发布后,Jakarta EE 11 规范所有版本基本完成,在接下来时间里

2022-09-23

Profile 和新的 Core Profile 规范。Jakarta EE 10 引入了用于构建现代化、简化和轻量级云原生 Java 应用程序的功能。据 Eclipse 基金会执行董事 Mike Milinkovich 称 这个版本是在现代微服务和容器时代牢牢植入 Jakarta EE 的“大版本“

2025-04-13

长。我们期待听到您的宝贵反馈! 支持的规范 Jakarta EE 标准版 WildFly 36 完全兼容 EE 10 平台,包括 Web Profile 和 Core Profile。在运行于 Java SE 17 和 Java SE 21 的环境下,WildFly 36 是 EE 10 平台的兼容实现。 有关认证的详细证

2023-11-17

Apache Tomcat 10.1.16 现已发布,此版本实现了作为 Jakarta EE 10 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 

2024-01-13

Apache Tomcat 10.1.18 现已发布,此版本实现了作为 Jakarta EE 10 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 

2023-08-09

Jetty Server / Jetty Client core 现在已 100% 脱离任何特定的 Jakarta EE 技术(如 Jakarta Servlet)。用户可以独立于任何特定的 EE 环境使用该层。 Jetty EE 环境  最初支持 3 个环境: EE10 - Jakarta EE 10 (jakarta.*) - Servlet 6 - JSP 3.1 -

2023-07-14

Apache Tomcat 10.1.11 现已发布,此版本实现了作为 Jakarta EE 10 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 

2023-12-15

Apache Tomcat 10.1.17 现已发布,此版本实现了作为 Jakarta EE 10 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 

2024-03-28

Apache Tomcat 10.1.20 现已发布,此版本实现了作为 Jakarta EE 10 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 

2024-04-26

Apache Tomcat 10.1.23 现已发布,此版本实现了作为 Jakarta EE 10 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 

2024-06-23

Apache Tomcat 10.1.23 现已发布,此版本实现了作为 Jakarta EE 10 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 

2022-07-29

Apache Tomcat 10.0.23 现已发布,此版本实现了作为 Jakarta EE 9 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在$CATAL

2022-10-15

Apache Tomcat 10.1.1 现已发布,此版本实现了作为 Jakarta EE 9 平台一部分的规范。 在 Tomcat 9 和更早版本上运行的应用程序,如果不做修改,将无法在 Tomcat 10 上运行。为 Tomcat 9 和更早版本设计的基于 Java EE 的应用程序可以放在 $