IntelliJ Platform Plugin SDK Help

Plugins

The IntelliJ Platform Gradle Plugin consists of sub-plugins which should be applied depending on the project structure.

Subplugins architecture allows applying a subset of features, for example, to provide the IntelliJ Platform dependency to a project submodule without creating unnecessary tasks.

The following diagram describes dependencies between plugins provided with the IntelliJ Platform Gradle Plugin.

build.gradle.kts

Platform

Module

Base

GrammarKit

settings.gradle.kts

Settings

The legacy org.jetbrains.intellij.platform.migration plugin was removed in 2.12.0. The migration guide remains available as historical reference.

Platform

Plugin ID: org.jetbrains.intellij.platform

This is a top-level plugin that applies all the tooling for plugin development for IntelliJ-based IDEs. It should be used only with the root module (for submodules, see Module).

build.gradle.kts

plugins { id("org.jetbrains.intellij.platform") version "2.13.1" }

build.gradle

plugins { id 'org.jetbrains.intellij.platform' version '2.13.1' }

Available tasks

buildPlugin, buildSearchableOptions, cleanSandbox, composedJar, generateManifest, initializeIntelliJPlatformPlugin, instrumentCode, instrumentedJar, jarSearchableOptions, patchPluginXml, prepareSandbox, prepareTest, prepareTestIdePerformanceSandbox, prepareTestSandbox, printBundledModules, printBundledPlugins, printProductsReleases, publishPlugin, runIde, setupDependencies, signPlugin, test, testIdePerformance, testIde, testIdeUi, verifyPluginProjectConfiguration, verifyPluginSignature, verifyPluginStructure, verifyPlugin

Module

Plugin ID: org.jetbrains.intellij.platform.module

This plugin applies a smaller set of functionalities for compiling and testing submodules when working in a multi-module architecture.

Compared to the main plugin, it omits publishing, signing, searchable-options generation, and plugin verification tasks.

settings.gradle.kts

rootProject.name = "..." include(":submodule")

submodule/build.gradle.kts

plugins { id("org.jetbrains.intellij.platform.module") } repositories { mavenCentral() intellijPlatform { defaultRepositories() } } dependencies { intellijPlatform { intellijIdea("2026.1") } }

build.gradle.kts

plugins { id("org.jetbrains.intellij.platform") version "2.13.1" } repositories { mavenCentral() intellijPlatform { defaultRepositories() } } dependencies { intellijPlatform { intellijIdea("2026.1") pluginModule(implementation(project(":submodule"))) } }

settings.gradle

rootProject.name = '...' include ':submodule'

submodule/build.gradle

plugins { id 'org.jetbrains.intellij.platform.module' } repositories { mavenCentral() intellijPlatform { defaultRepositories() } } dependencies { intellijPlatform { intellijIdea '2026.1' } }

build.gradle

plugins { id 'org.jetbrains.intellij.platform' version '2.13.1' } repositories { mavenCentral() intellijPlatform { defaultRepositories() } } dependencies { intellijPlatform { intellijIdea '2026.1' pluginModule(implementation(project(':submodule'))) } }

Note that the :submodule is added both to the implementation configuration and intellijPlatformPluginModule using the Plugins helper method. This guarantees that the submodule JAR is placed in the lib/modules/ directory in the final plugin distribution.

To merge submodule content into the main plugin JAR file, use pluginComposedModule(implementation(project(":submodule"))) instead.

Available tasks

cleanSandbox, composedJar, generateManifest, initializeIntelliJPlatformPlugin, instrumentCode, instrumentedJar, prepareSandbox, prepareTest, prepareTestIdePerformanceSandbox, prepareTestSandbox, printBundledModules, printBundledPlugins, printProductsReleases, setupDependencies, test, testIde, testIdeUi, verifyPluginProjectConfiguration

Settings

Plugin ID: org.jetbrains.intellij.platform.settings

If you define project repositories within the settings.gradle.kts using the dependencyResolutionManagement, make sure to include the Settings plugin in settings.gradle.kts.

This approach allows for omitting the repositories {} definition in the build.gradle.kts files. See Dependency Resolution Management for more details.

settings.gradle.kts

import org.jetbrains.intellij.platform.gradle.extensions.intellijPlatform plugins { id("org.jetbrains.intellij.platform.settings") version "2.13.1" } rootProject.name = "..." dependencyResolutionManagement { repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS repositories { mavenCentral() intellijPlatform { defaultRepositories() } } } include(":submodule")

build.gradle.kts

plugins { id("org.jetbrains.intellij.platform") } dependencies { intellijPlatform { intellijIdea("2026.1") pluginModule(implementation(project(":submodule"))) } }

submodule/build.gradle.kts

plugins { id("org.jetbrains.intellij.platform.module") } dependencies { intellijPlatform { intellijIdea("2026.1") } }

settings.gradle

import org.jetbrains.intellij.platform.gradle.extensions.intellijPlatform plugins { id 'org.jetbrains.intellij.platform.settings' version '2.13.1' } rootProject.name = '...' dependencyResolutionManagement { repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS repositories { mavenCentral() intellijPlatform { defaultRepositories() } } } include ':submodule'

build.gradle

plugins { id 'org.jetbrains.intellij.platform' } dependencies { intellijPlatform { intellijIdea '2026.1' pluginModule(implementation(project(':submodule'))) } }

submodule/build.gradle

plugins { id 'org.jetbrains.intellij.platform.module' } dependencies { intellijPlatform { intellijIdea '2026.1' } }

GrammarKit

Plugin ID: org.jetbrains.intellij.platform.grammarkit

This plugin applies the Base plugin and adds task support for generating lexers with JFlex and parsers with GrammarKit.

build.gradle.kts

plugins { id("org.jetbrains.intellij.platform.grammarkit") version "2.13.1" }

build.gradle

plugins { id 'org.jetbrains.intellij.platform.grammarkit' version '2.13.1' }

Available tasks

generateLexer, generateParser, initializeIntelliJPlatformPlugin, printBundledModules, printBundledPlugins, printProductsReleases, setupDependencies

Base

Plugin ID: org.jetbrains.intellij.platform.base

Prepares all the custom configurations, transformers, and base tasks needed to manage the IntelliJ Platform dependency, JetBrains Runtime, CLI tools, and others.

It also introduces the IntelliJ Platform Extension to the build.gradle.kts file along with Dependencies Extension and Repositories Extension to help preconfigure project dependencies:

repositories { ... // Repositories Extension intellijPlatform { ... } } dependencies { ... // Dependencies Extension intellijPlatform { ... } } // IntelliJ Platform Extension intellijPlatform { ... }
repositories { ... // Repositories Extension intellijPlatform { ... } } dependencies { ... // Dependencies Extension intellijPlatform { ... } } // IntelliJ Platform Extension intellijPlatform { ... }

The plugin also introduces a task listener which allows for creating custom tasks decorated with Task Awares. See Recipes for more details.

Available tasks

initializeIntelliJPlatformPlugin, printBundledModules, printBundledPlugins, printProductsReleases, setupDependencies,

25 March 2026