Jakarta EE 11 — Complete Specification API Maven Coordinates

Jakarta EE 11 is a landmark release that modernizes enterprise Java for the cloud-native era. It aligns with Java SE 17 and Java SE 21, removes all remaining optional specifications, introduces the brand-new Jakarta Data specification, and cleans up years of accumulated legacy — including the removal of SecurityManager references in line with JEP 411.

Whether you are migrating from Jakarta EE 10, building a new application on Open Liberty, or just updating your pom.xml — this document gives you every specification API Maven coordinate in one place, organized by profile.

Key Highlights in Jakarta EE 11

  • Jakarta Data 1.0 — brand-new specification for repository-based data access

  • Jakarta Persistence 3.2java.time mapping, Records as embeddables, new JPQL functions

  • Jakarta CDI 4.1 — brings important architectural improvements and new APIs to help framework developers build on CDI.

  • Jakarta Faces 4.1 — aligns with CDI where possible, and provides various small enhancements and clarifications.

  • Jakarta REST 4.0 — improved programmatic API

  • Java SE 17 and 21 baseline — virtual threads, records, sealed classes all first-class

  • All optional specifications removed — cleaner, leaner platform

  • SecurityManager removed — aligned with JEP 411

Quickstart — Use the Jakarta EE 11 BOM

Instead of declaring each API individually, import the platform BOM and omit versions:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>jakarta.platform</groupId>
      <artifactId>jakarta.jakartaee-bom</artifactId>
      <version>11.0.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Or use jakarta.platform:jakarta.jakartaee-api:11.0.0 (full platform all-in-one), jakarta.platform:jakarta.jakartaee-web-api:11.0.0 (Web Profile), or jakarta.platform:jakarta.jakartaee-core-api:11.0.0 (Core Profile).

Specification API Coordinates

Profile membership: PlatformWeb ProfileCore Profile. All Web Profile specifications are also in Platform. All Core Profile specifications are in both.

Core Profile

SpecificationVersionMaven CoordinatesOpen Liberty Feature

Jakarta RESTful Web Services (Updated)

4.0

jakarta.ws.rs:jakarta.ws.rs-api:4.0.0

restfulWS-4.0

Jakarta CDI Lite (Updated)

4.1

jakarta.enterprise:jakarta.enterprise.cdi-api:4.1.0
jakarta.enterprise:jakarta.enterprise.lang-model:4.1.0

cdi-4.1

Jakarta Dependency Injection

2.0

jakarta.inject:jakarta.inject-api:2.0.1

cdi-4.1

Jakarta Interceptors (Updated)

2.2

jakarta.interceptor:jakarta.interceptor-api:2.2.0

cdi-4.1

Jakarta JSON Processing

2.1

jakarta.json:jakarta.json-api:2.1.3

jsonp-2.1

Jakarta JSON Binding

3.0

jakarta.json.bind:jakarta.json.bind-api:3.0.1

jsonb-3.0

Jakarta Annotations (Updated)

3.0

jakarta.annotation:jakarta.annotation-api:3.0.0

n/a (enabled via various Liberty features)

Web Profile (adds to Core Profile)

SpecificationVersionMaven CoordinatesOpen Liberty Feature

Jakarta Servlet (Updated)

6.1

jakarta.servlet:jakarta.servlet-api:6.1.0

servlet-6.1

Jakarta Persistence (Updated)

3.2

jakarta.persistence:jakarta.persistence-api:3.2.0

persistence-3.2

Jakarta Faces (Updated)

4.1

jakarta.faces:jakarta.faces-api:4.1.2

faces-4.1

Jakarta Pages (Updated)

4.0

jakarta.servlet.jsp:jakarta.servlet.jsp-api:4.0.0

pages-4.0

Jakarta Standard Tag Library

3.0

jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2

pages-4.0

Jakarta WebSocket (Updated)

2.2

jakarta.websocket:jakarta.websocket-api:2.2.0
jakarta.websocket:jakarta.websocket-client-api:2.2.0

websocket-2.2

Jakarta Enterprise Beans Lite

4.0

jakarta.ejb:jakarta.ejb-api:4.0.1

enterpriseBeansLite-4.0

Jakarta Security (Updated)

4.0

jakarta.security.enterprise:jakarta.security.enterprise-api:4.0.0

appSecurity-6.0

Jakarta Authentication (Updated)

3.1

jakarta.authentication:jakarta.authentication-api:3.1.0

appAuthentication-3.1

Jakarta Expression Language (Updated)

6.0

jakarta.el:jakarta.el-api:6.0.1

expressionLanguage-6.0

Jakarta Validation (Updated)

3.1

jakarta.validation:jakarta.validation-api:3.1.1

validation-3.1

Jakarta Transactions

2.0

jakarta.transaction:jakarta.transaction-api:2.0.1

n/a (enabled via various Liberty features)

Jakarta Concurrency (Updated)

3.1

jakarta.enterprise.concurrent:jakarta.enterprise.concurrent-api:3.1.1

concurrent-3.1

Jakarta Data (NEW)

1.0

jakarta.data:jakarta.data-api:1.0.1

data-1.0

Platform (adds to Web Profile)

SpecificationVersionMaven CoordinatesOpen Liberty Feature

Jakarta Enterprise Beans

4.0

jakarta.ejb:jakarta.ejb-api:4.0.1

enterpriseBeans-4.0

Jakarta Messaging

3.1

jakarta.jms:jakarta.jms-api:3.1.0

messaging-3.1

Jakarta Mail

2.1

jakarta.mail:jakarta.mail-api:2.1.3

mail-2.1

Jakarta Activation

2.1

jakarta.activation:jakarta.activation-api:2.1.3

mail-2.1

Jakarta Connectors

2.1

jakarta.resource:jakarta.resource-api:2.1.0

connectors-2.1

Jakarta Authorization (Updated)

3.0

jakarta.authorization:jakarta.authorization-api:3.0.0

appAuthorization-3.0

Jakarta Batch

2.1

jakarta.batch:jakarta.batch-api:2.1.1

batch-2.1

Copy-Paste Maven Snippets

Set <scope>provided</scope> for all specifications — Liberty provides the APIs.
<!-- Jakarta EE 11 — individual API dependencies (scope: provided) -->

<!-- Core Profile -->
<dependency>
  <groupId>jakarta.ws.rs</groupId>
  <artifactId>jakarta.ws.rs-api</artifactId>
  <version>4.0.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.enterprise</groupId>
  <artifactId>jakarta.enterprise.cdi-api</artifactId>
  <version>4.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.enterprise</groupId>
  <artifactId>jakarta.enterprise.lang-model</artifactId>
  <version>4.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.inject</groupId>
  <artifactId>jakarta.inject-api</artifactId>
  <version>2.0.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.interceptor</groupId>
  <artifactId>jakarta.interceptor-api</artifactId>
  <version>2.2.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.json</groupId>
  <artifactId>jakarta.json-api</artifactId>
  <version>2.1.3</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.json.bind</groupId>
  <artifactId>jakarta.json.bind-api</artifactId>
  <version>3.0.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.annotation</groupId>
  <artifactId>jakarta.annotation-api</artifactId>
  <version>3.0.0</version>
  <scope>provided</scope>
</dependency>

<!-- Web Profile additions -->
<dependency>
  <groupId>jakarta.servlet</groupId>
  <artifactId>jakarta.servlet-api</artifactId>
  <version>6.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.persistence</groupId>
  <artifactId>jakarta.persistence-api</artifactId>
  <version>3.2.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.faces</groupId>
  <artifactId>jakarta.faces-api</artifactId>
  <version>4.1.2</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.servlet.jsp</groupId>
  <artifactId>jakarta.servlet.jsp-api</artifactId>
  <version>4.0.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.servlet.jsp.jstl</groupId>
  <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
  <version>3.0.2</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.websocket</groupId>
  <artifactId>jakarta.websocket-api</artifactId>
  <version>2.2.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.websocket</groupId>
  <artifactId>jakarta.websocket-client-api</artifactId>
  <version>2.2.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.ejb</groupId>
  <artifactId>jakarta.ejb-api</artifactId>
  <version>4.0.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.security.enterprise</groupId>
  <artifactId>jakarta.security.enterprise-api</artifactId>
  <version>4.0.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.authentication</groupId>
  <artifactId>jakarta.authentication-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.el</groupId>
  <artifactId>jakarta.el-api</artifactId>
  <version>6.0.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.validation</groupId>
  <artifactId>jakarta.validation-api</artifactId>
  <version>3.1.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.transaction</groupId>
  <artifactId>jakarta.transaction-api</artifactId>
  <version>2.0.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.enterprise.concurrent</groupId>
  <artifactId>jakarta.enterprise.concurrent-api</artifactId>
  <version>3.1.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.data</groupId>
  <artifactId>jakarta.data-api</artifactId>
  <version>1.0.1</version>
  <scope>provided</scope>
</dependency>

<!-- Platform additions -->
<dependency>
  <groupId>jakarta.jms</groupId>
  <artifactId>jakarta.jms-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.mail</groupId>
  <artifactId>jakarta.mail-api</artifactId>
  <version>2.1.3</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.activation</groupId>
  <artifactId>jakarta.activation-api</artifactId>
  <version>2.1.3</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.resource</groupId>
  <artifactId>jakarta.resource-api</artifactId>
  <version>2.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.authorization</groupId>
  <artifactId>jakarta.authorization-api</artifactId>
  <version>3.0.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>jakarta.batch</groupId>
  <artifactId>jakarta.batch-api</artifactId>
  <version>2.1.1</version>
  <scope>provided</scope>
</dependency>

Copy-Paste Gradle Snippets

Use compileOnly for all specifications — Liberty provides the APIs.
// Jakarta EE 11 — individual API dependencies (compileOnly)

// Core Profile
compileOnly 'jakarta.ws.rs:jakarta.ws.rs-api:4.0.0'
compileOnly 'jakarta.enterprise:jakarta.enterprise.cdi-api:4.1.0'
compileOnly 'jakarta.enterprise:jakarta.enterprise.lang-model:4.1.0'
compileOnly 'jakarta.inject:jakarta.inject-api:2.0.1'
compileOnly 'jakarta.interceptor:jakarta.interceptor-api:2.2.0'
compileOnly 'jakarta.json:jakarta.json-api:2.1.3'
compileOnly 'jakarta.json.bind:jakarta.json.bind-api:3.0.1'
compileOnly 'jakarta.annotation:jakarta.annotation-api:3.0.0'

// Web Profile additions
compileOnly 'jakarta.servlet:jakarta.servlet-api:6.1.0'
compileOnly 'jakarta.persistence:jakarta.persistence-api:3.2.0'
compileOnly 'jakarta.faces:jakarta.faces-api:4.1.2'
compileOnly 'jakarta.servlet.jsp:jakarta.servlet.jsp-api:4.0.0'
compileOnly 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2'
compileOnly 'jakarta.websocket:jakarta.websocket-api:2.2.0'
compileOnly 'jakarta.websocket:jakarta.websocket-client-api:2.2.0'
compileOnly 'jakarta.ejb:jakarta.ejb-api:4.0.1'
compileOnly 'jakarta.security.enterprise:jakarta.security.enterprise-api:4.0.0'
compileOnly 'jakarta.authentication:jakarta.authentication-api:3.1.0'
compileOnly 'jakarta.el:jakarta.el-api:6.0.1'
compileOnly 'jakarta.validation:jakarta.validation-api:3.1.1'
compileOnly 'jakarta.transaction:jakarta.transaction-api:2.0.1'
compileOnly 'jakarta.enterprise.concurrent:jakarta.enterprise.concurrent-api:3.1.1'
compileOnly 'jakarta.data:jakarta.data-api:1.0.1'

// Platform additions
compileOnly 'jakarta.jms:jakarta.jms-api:3.1.0'
compileOnly 'jakarta.mail:jakarta.mail-api:2.1.3'
compileOnly 'jakarta.activation:jakarta.activation-api:2.1.3'
compileOnly 'jakarta.resource:jakarta.resource-api:2.1.0'
compileOnly 'jakarta.authorization:jakarta.authorization-api:3.0.0'
compileOnly 'jakarta.batch:jakarta.batch-api:2.1.1'

Jakarta EE 11 represents the most significant modernization of the platform in years. The new Java SE 17 baseline unlocks records and sealed classes for enterprise applications — and the removal of optional specifications makes the platform simpler to reason about and implement.

Open Liberty ships full Jakarta EE 11 support — look for the jakartaee-11.0 convenience feature in your server.xml, or enable individual features like persistence-3.2, restfulWS-4.0, and data-1.0 as needed.

For full specification details, see Jakarta EE 11 website.

For a deep dive into Jakarta EE 11 features and code examples on Open Liberty, see the Jakarta EE 11 from Newbie to Pro with Open Liberty blog post.