See IntelliJ Platform Gradle Plugin â FAQ and Migrating from Gradle IntelliJ Plugin (1.x).
The Task Awares is a set of interfaces that can be applied to custom Gradle tasks and, when registered using the dedicated register method, inject new features or properties with predefined values.
IntelliJ Platform Gradle Plugin supports creating custom tasks which can use *Aware
interfaces. Example:
import org.jetbrains.intellij.platform.gradle.tasks.aware.PluginAware abstract class RetrievePluginNameTask : DefaultTask(), PluginAware val retrievePluginName by tasks.registering(RetrievePluginNameTask::class) { val outputFile = layout.buildDirectory.file("pluginName.txt") doLast { outputFile.get().asFile.writeText(pluginXml.parse { name }.get()) } }
import org.jetbrains.intellij.platform.gradle.tasks.aware.PluginAware abstract class RetrievePluginNameTask extends DefaultTask implements PluginAware {} tasks.register('retrievePluginName', RetrievePluginNameTask) { def outputFile = layout.buildDirectory.file("pluginName.txt") doLast { outputFile.get().asFile.writeText(pluginXml.parse { name }.get()) } }
AutoReloadAware
Provides the possibility to auto-reload plugin when run in the IDE.
autoReload
Enables auto-reload of dynamic plugins. Dynamic plugin will be reloaded automatically when its content is modified.
This allows a much faster development cycle by avoiding a full restart of the development instance after code changes.
Property<Boolean>
CoroutinesJavaAgentAware
Provides the path to the Java Agent file for the Coroutines library required to enable coroutines debugging.
coroutinesJavaAgentFile
The path to the coroutines Java Agent file.
RegularFileProperty
IntelliJPlatformVersionAware
Provides a task with the possibility of accessing information about the IntelliJ Platform currently used in the project.
The intelliJPlatformConfiguration
input property receives a dependency added to the intellijPlatform
configuration, which eventually is resolved and lets to access the IntelliJ Platform details such as ProductInfo
or the path to the IntelliJ Platform directory.
It is required to have a dependency on the IntelliJ Platform added to the project with helpers available in Dependencies Extension.
intelliJPlatformConfiguration
Holds the intellijPlatform
configuration with the IntelliJ Platform dependency added.
It should not be directly accessed.
ConfigurableFileCollection
intelliJPlatformPluginConfiguration
Holds the intellijPlatformPlugin
configuration with optional custom IntelliJ Platform plugin dependencies added. It should not be directly accessed.
Type :: ConfigurableFileCollection
intelliJPlatformTestRuntimeFixClasspathConfiguration
Holds the intellijPlatformTestRuntimeFixClasspath
configuration with the custom IntelliJ Platform core dependency required for running tests. It should not be directly accessed.
Type :: ConfigurableFileCollection
platformPath
Provides a direct path to the IntelliJ Platform dependency artifact.
Read-only
Path
productInfo
Provides information about the IntelliJ Platform product.
The information is retrieved from the product-info.json file in the IntelliJ Platform directory.
Read-only
validateIntelliJPlatformVersion()
Validates that the resolved IntelliJ Platform is supported by checking against the minimal supported IntelliJ Platform version.
Invokes ProductInfo.validateSupportedVersion()
.
IllegalArgumentException
JavaCompilerAware
Provides the dependency on Java Compiler required for the code instrumentation to properly configure Ant tasks provided by the IntelliJ Platform.
javaCompilerConfiguration
Holds the intellijPlatformJavaCompiler
configuration with the Java Compiler dependency added.
ConfigurableFileCollection
An interface that provides access to Kotlin-specific metadata for a Gradle project. The task that inherits from this interface is automatically marked as dependent on the compileKotlin
task.
kotlinPluginAvailable
Indicates that the Kotlin Gradle Plugin is loaded and available.
Property<Boolean>
false
kotlinxCoroutinesLibraryPresent
This variable represents whether the Kotlin Coroutines library is added explicitly to the project dependencies.
Property<Boolean>
false
kotlinApiVersion
The apiVersion
property value of compileKotlin.kotlinOptions
defined in the build script.
Property<String?>
null
kotlinLanguageVersion
The languageVersion
property value of compileKotlin.kotlinOptions
defined in the build script.
Property<String?>
null
kotlinVersion
The version of Kotlin used in the project.
Property<String?>
null
kotlinJvmTarget
The jvmTarget
property value of compileKotlin.kotlinOptions
defined in the build script.
Property<String?>
null
kotlinStdlibDefaultDependency
kotlin.stdlib.default.dependency
property value defined in the gradle.properties
file.
Property<Boolean?>
null
ModuleAware
Provides information about whether the current task is executed in an IntelliJ Platform plugin module context.
module
Indicates if the current project represents an IntelliJ Platform plugin module.
Type :: Property<Boolean>
Default value :: PluginManager.isModule
Notes:
The IntelliJ Platform Gradle Plugin wires this property automatically for tasks implementing ModuleAware during task preconfiguration.
You typically do not set this value yourself; consume it in your task to branch logic.
PluginAware
Provides information about the currently built plugin.
It resolves and parses the final plugin.xml descriptor file, making its details easily accessible.
pluginXml
Holds the path to the patched plugin.xml file.
RegularPropertyFile
parse {}
The parse
method provides a possibility for parsing the pluginXml file and direct access to the PluginBean
object.
Should be used along with the pluginXml
property like:
abstract class RetrievePluginNameTask : DefaultTask(), PluginAware val retrievePluginName by tasks.registering(RetrievePluginNameTask::class) { doLast { val name = pluginXml.parse { name }.get() println("Plugin Name: $name") } }
abstract class RetrievePluginNameTask extends DefaultTask implements PluginAware {} tasks.register('retrievePluginName', RetrievePluginNameTask) { doLast { def name = pluginXml.parse { name }.get() println("Plugin Name: $name") } }
PluginVerifierAware
Provides the path to the IntelliJ Plugin Verifier executable.
It is required to have a dependency on the IntelliJ Plugin Verifier added to the project with intellijPlatform.pluginVerifier()
dependencies extension.
pluginVerifierExecutable
Path to the IntelliJ Plugin Verifier executable.
RegularFileProperty
RunnableIdeAware
The interface which uses a set of various interfaces required for running a guest IDE. Inherits from:
JavaForkOptions
RuntimeAware
Provides access to the Java Runtime (i.e., JetBrains Runtime) resolved with JavaRuntimePathResolver
.
jetbrainsRuntimeConfiguration
Holds the intellijPlatformJetbrainsRuntime
configuration with the JetBrains Runtime dependency added. It should not be directly accessed.
Type :: ConfigurableFileCollection
runtimeDirectory
Java Runtime parent directory.
DirectoryProperty
runtimeArchitecture
An architecture of the Java Runtime currently used for running Gradle.
Property<String>
runtimeMetadata
Metadata object of the Java Runtime currently used for running Gradle.
Type :: MapProperty<String, String>
runtimeLauncher
A custom JavaLauncher
instance configured with the resolved runtimeDirectory
.
Property<JavaLauncher>
SandboxStructure
Defines common sandbox directories and flags used by tasks interacting with IDE sandboxes.
sandboxDirectory
The directory containing content read and produced by the running IDE. The directory name depends on the platform type and version currently used for running a task.
Type :: DirectoryProperty
sandboxConfigDirectory
A configuration directory located within the sandboxDirectory
.
Type :: DirectoryProperty
sandboxPluginsDirectory
A plugins directory located within the sandboxDirectory
.
Type :: DirectoryProperty
sandboxSystemDirectory
A system directory located within the sandboxDirectory
.
Type :: DirectoryProperty
sandboxLogDirectory
A log directory located within the sandboxDirectory
.
Type :: DirectoryProperty
testSandbox
Defines if the current sandbox is related to testing.
Type :: Property<Boolean>
SandboxAware
Provides quick access to the sandbox container and specific directories located within it.
The path to the sandbox container is obtained using the intellijPlatform.sandboxContainer
extension property and the type and version of the IntelliJ Platform applied to the project.
sandboxSuffix
Represents the suffix used i.e., for test-related tasks.
Property<String>
sandboxDirectory
The directory containing content read and produced by the running IDE.
The directory name depends on the platform type and version currently used for running a task.
DirectoryProperty
sandboxConfigDirectory
A configuration directory located within the sandboxDirectory
.
DirectoryProperty
sandboxPluginsDirectory
A plugins directory located within the sandboxDirectory
.
DirectoryProperty
sandboxSystemDirectory
A system directory located within the sandboxDirectory
.
DirectoryProperty
sandboxLogDirectory
A log directory located within the sandboxDirectory
.
DirectoryProperty
applySandboxFrom(TaskProvider)
The helper method used for applying sandbox configuration from the sandbox producer (such as prepareSandbox
or prepareTestSandbox
tasks) to sandbox consumers.
SigningAware
Provides the path to the Marketplace ZIP Signer executable.
zipSignerExecutable
Path to the Marketplace ZIP Signer executable.
RegularFileProperty
SplitModeAware
When you develop a plugin, you may want to check how it works in remote development mode, when one machine is running the backend part and another is running a frontend part (JetBrains Client) which connects to the backend.
This property allows running the IDE with backend and frontend parts running in separate processes. The developed plugin is installed in the backend part.
Split Mode requires the IntelliJ Platform in the version 241.14473
or later.
splitMode
Enables Split Mode when running the IDE.
Property<Boolean>
splitModeTarget
Specifies in which part of the product the developed plugin should be installed.
TestableAware
Interface used to describe tasks used for running tests, such as testIdeUi
, testIdePerformance
, or prepareTest
used for configuring test
and keeping it immutable.
If a topic is not covered in the above sections, let us know via the Was this page helpful? feedback form below or other channels.
Be specific about the topics and reasons for adding them and leave your email in case we need more details. Thanks for your feedback!
13 August 2025
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4