IntelliJ IDEA 2026.1 Help

Contexts and Dependency Injection (CDI)

Jakarta Contexts and Dependency Injection (CDI) is a specification for declarative dependency injection and supporting services.

Enable the Jakarta EE: Contexts and Dependency Injection (CDI) plugin

This functionality relies on the Jakarta EE: Contexts and Dependency Injection (CDI) plugin, which is bundled and enabled in IntelliJ IDEA by default. If the relevant features are not available, make sure that you did not disable the plugin.

  1. Press Ctrl+Alt+S to open settings and then select Plugins.

  2. Open the Installed tab, find the Jakarta EE: Contexts and Dependency Injection (CDI) plugin, and select the checkbox next to the plugin name.

You can enable CDI support when creating a new project or module, or add CDI support to an existing module.

Create a new Jakarta EE project with CDI

  1. Open the New Project wizard:

    • If you are on the Welcome screen, click New Project.

    • If you are in the IDE, go to File | New | Project.

  2. From the Generators list, select Jakarta EE.

    Creating a new Jakarta EE project
  3. Set up the Jakarta EE project settings.

  4. Go to the next step of the wizard. In the upper-left corner, select the Jakarta EE version you want to use.

  5. From the Specifications list, select Contexts and Dependency Injection (CDI).

    Creating new project with CDI support
  6. Click Create.

For more information about creating Jakarta EE projects, such as how to set up an application server, refer to Tutorial: Your first Jakarta EE application.

Add CDI to an existing project

  1. Open the build file in the editor (pom.xml or build.gradle depending on the build tool used in your project).

  2. Add the CDI dependency, but make sure the version matches the rest of your project:

    Jakarta EE
    <dependency> <groupId>jakarta.enterprise</groupId> <artifactId>jakarta.enterprise.cdi-api</artifactId> <version>4.0.1</version> </dependency>
    Java EE
    <dependency> <groupId>javax.enterprise</groupId> <artifactId>cdi-api</artifactId> <version>2.0.SP1</version> <scope>provided</scope> </dependency>
    Jakarta EE
    implementation 'jakarta.enterprise:jakarta.enterprise.cdi-api:4.0.1'
    Java EE
    compileOnly('org.apache.deltaspike.cdictrl:deltaspike-cdictrl-api:1.9.5')
  3. Press Ctrl+Shift+O to import the changes.

For more information about working with build tools, refer to Maven or Gradle.

09 August 2024