[IntelliJ Platform Gradle Plugin] Tasks and Plugins crosslink and cleanup

This commit is contained in:
Jakub Chrzanowski 2024-07-22 15:04:47 +02:00
parent 0aef8d2953
commit 0956c8693b
No known key found for this signature in database
GPG Key ID: C39095BFD769862E
3 changed files with 250 additions and 59 deletions

View File

@ -59,4 +59,8 @@
<primary-label id="2024.3" short-name="2024.3+" name="2024.3+">
Available in IDE version 2024.3 or later
</primary-label>
<secondary-label id="deprecated" name="Deprecated" color="red">
This item is marked as deprecated.
</secondary-label>
</labels>

View File

@ -46,6 +46,9 @@ flowchart TB
## Platform
{#platform}
<link-summary>Top-level plugin that applies all the tooling for plugin development for IntelliJ-based IDEs.</link-summary>
**Plugin ID: `org.jetbrains.intellij.platform`**
@ -59,8 +62,39 @@ plugins {
}
```
### Available tasks
{#platform-available-tasks}
[`buildPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#buildPlugin),
[`buildSearchableOptions`](tools_intellij_platform_gradle_plugin_tasks.md#buildSearchableOptions),
[`composedJar`](tools_intellij_platform_gradle_plugin_tasks.md#composedJar),
[`generateManifest`](tools_intellij_platform_gradle_plugin_tasks.md#generateManifest),
[`initializeIntelliJPlatformPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#initializeIntelliJPlatformPlugin),
[`instrumentCode`](tools_intellij_platform_gradle_plugin_tasks.md#instrumentCode),
[`instrumentedJar`](tools_intellij_platform_gradle_plugin_tasks.md#instrumentedJar),
[`jarSearchableOptions`](tools_intellij_platform_gradle_plugin_tasks.md#jarSearchableOptions),
[`patchPluginXml`](tools_intellij_platform_gradle_plugin_tasks.md#patchPluginXml),
[`prepareSandbox`](tools_intellij_platform_gradle_plugin_tasks.md#prepareSandbox),
[`prepareTest`](tools_intellij_platform_gradle_plugin_tasks.md#prepareTest),
[`printBundledPlugins`](tools_intellij_platform_gradle_plugin_tasks.md#printBundledPlugins),
[`printProductsReleases`](tools_intellij_platform_gradle_plugin_tasks.md#printProductsReleases),
[`publishPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#publishPlugin),
[`runIde`](tools_intellij_platform_gradle_plugin_tasks.md#runIde),
[`setupDependencies`](tools_intellij_platform_gradle_plugin_tasks.md#setupDependencies),
[`signPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#signPlugin),
[`testIdePerformance`](tools_intellij_platform_gradle_plugin_tasks.md#testIdePerformance),
[`testIde`](tools_intellij_platform_gradle_plugin_tasks.md#testIde),
[`testIdeUi`](tools_intellij_platform_gradle_plugin_tasks.md#testIdeUi),
[`verifyPluginProjectConfiguration`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPluginProjectConfiguration),
[`verifyPluginSignature`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPluginSignature),
[`verifyPluginStructure`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPluginStructure),
[`verifyPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPlugin)
## Module
{#module}
<link-summary>Applies a smaller set of functionalities for compiling and testing submodules when working in a multi-module architecture.</link-summary>
**Plugin ID: `org.jetbrains.intellij.platform.module`**
@ -124,14 +158,33 @@ dependencies {
Note that the `:submodule` is added both to the `implementation` configuration and `intellijPlatformPluginModule` using the [](tools_intellij_platform_gradle_plugin_dependencies_extension.md#plugins) helper method.
This guarantees that the submodule content will be merged into the main plugin Jar file.
### Available tasks
{#module-available-tasks}
[`composedJar`](tools_intellij_platform_gradle_plugin_tasks.md#composedJar),
[`generateManifest`](tools_intellij_platform_gradle_plugin_tasks.md#generateManifest),
[`initializeIntelliJPlatformPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#initializeIntelliJPlatformPlugin),
[`instrumentCode`](tools_intellij_platform_gradle_plugin_tasks.md#instrumentCode),
[`instrumentedJar`](tools_intellij_platform_gradle_plugin_tasks.md#instrumentedJar),
[`prepareSandbox`](tools_intellij_platform_gradle_plugin_tasks.md#prepareSandbox),
[`prepareTest`](tools_intellij_platform_gradle_plugin_tasks.md#prepareTest),
[`printBundledPlugins`](tools_intellij_platform_gradle_plugin_tasks.md#printBundledPlugins),
[`printProductsReleases`](tools_intellij_platform_gradle_plugin_tasks.md#printProductsReleases),
[`setupDependencies`](tools_intellij_platform_gradle_plugin_tasks.md#setupDependencies),
[`testIde`](tools_intellij_platform_gradle_plugin_tasks.md#testIde),
[`verifyPluginProjectConfiguration`](tools_intellij_platform_gradle_plugin_tasks.md#verifyPluginProjectConfiguration)
## Settings
{#settings}
<link-summary>Plugin available for use in Gradle settings file.</link-summary>
**Plugin ID: `org.jetbrains.intellij.platform.settings`**
If you define project repositories within the <path>settings.gradle.kts</path> using the `dependencyResolutionManagement`, make sure to include the Settings plugin in <path>settings.gradle.kts</path>.
This approach allows for ommiting the `repositories {}` definition in the <path>build.gradle.kts</path> files. See [](tools_intellij_platform_gradle_plugin.md#configuration.dependencyResolutionManagement) for more details.
This approach allows for omitting the `repositories {}` definition in the <path>build.gradle.kts</path> files. See [](tools_intellij_platform_gradle_plugin.md#configuration.dependencyResolutionManagement) for more details.
<path>settings.gradle.kts</path>
@ -188,7 +241,11 @@ dependencies {
}
```
## Migration
{#migration}
<link-summary>Plugin is designed to assist in upgrading projects that use Gradle IntelliJ Plugin **1.x** to the **2.x** version.</link-summary>
**Plugin ID: `org.jetbrains.intellij.platform.migration`**
@ -199,7 +256,11 @@ It loads the [](#platform) plugin with additional mocks and checks applied — a
See [](tools_intellij_platform_gradle_plugin_migration.md) for more details.
## Base
{#base}
<link-summary>Prepares all the custom configurations, transformers, and base tasks needed to manage the IntelliJ Platform dependency, JetBrains Runtime, CLI tools, and others.</link-summary>
**Plugin ID: `org.jetbrains.intellij.platform.base`**
@ -228,3 +289,11 @@ intellijPlatform { ... }
The plugin also introduces a task listener which allows for creating custom tasks decorated with [](tools_intellij_platform_gradle_plugin_task_awares.md).
See [](tools_intellij_platform_gradle_plugin_recipies.md) for more details.
### Available tasks
{#base-available-tasks}
[`initializeIntelliJPlatformPlugin`](tools_intellij_platform_gradle_plugin_tasks.md#initializeIntelliJPlatformPlugin),
[`printBundledPlugins`](tools_intellij_platform_gradle_plugin_tasks.md#printBundledPlugins),
[`printProductsReleases`](tools_intellij_platform_gradle_plugin_tasks.md#printProductsReleases),
[`setupDependencies`](tools_intellij_platform_gradle_plugin_tasks.md#setupDependencies),

View File

@ -24,49 +24,38 @@ flowchart LR
initializeIntelliJPlatformPlugin
subgraph ALL ["` `"]
subgraph BUILD ["Build"]
buildPlugin
buildSearchableOptions
jarSearchableOptions
subgraph prepareSandbox_patchPluginXml ["` `"]
prepareSandbox
patchPluginXml
end
subgraph instrumentation
direction BT
instrumentedJar
instrumentCode
end
subgraph BASE ["Base"]
printBundledPlugins
printProductsReleases
setupDependencies
end
subgraph PUBLISH ["Publish"]
publishPlugin
signPlugin
end
subgraph TEST ["Test"]
runIde
subgraph MODULE ["Module"]
prepareSandbox
prepareTestSandbox
composedJar
generateManifest
instrumentCode
instrumentedJar
prepareTest
testIdePerformance>testIdePerformance]
testIdeUi>testIdeUi]
end
subgraph VERIFY ["Verify"]
direction TB
verifyPlugin
verifyPluginSignature
verifyPluginStructure
testIde
verifyPluginProjectConfiguration
end
TEST ~~~ VERIFY
printBundledPlugins
printProductsReleases
subgraph PLATFORM ["Platform"]
buildPlugin
buildSearchableOptions
jarSearchableOptions
patchPluginXml
publishPlugin
runIde
signPlugin
testIdePerformance
testIdeUi
verifyPluginSignature
verifyPluginStructure
verifyPlugin
end
end
end
@ -81,30 +70,33 @@ flowchart LR
end
initializeIntelliJPlatformPlugin --> | runs before | ALL
%% initializeIntelliJPlatformPlugin --> | runs before | ALL
printBundledPlugins
printProductsReleases
setupDependencies
buildPlugin --> jarSearchableOptions & prepareSandbox_patchPluginXml
buildSearchableOptions --> prepareSandbox_patchPluginXml
composedJar --> jar & instrumentedJar
generateManifest
instrumentCode --> compile
instrumentedJar --> jar & instrumentCode
jarSearchableOptions --> buildSearchableOptions & prepareSandbox_patchPluginXml
prepareSandbox --> instrumentedJar & jar
prepareTestSandbox --> jar & instrumentedJar
prepareTest --> prepareTestSandbox
testIde --> prepareTest
verifyPluginProjectConfiguration
buildPlugin --> jarSearchableOptions & prepareSandbox
buildSearchableOptions --> prepareSandbox
jarSearchableOptions --> buildSearchableOptions & patchPluginXml & prepareSandbox
patchPluginXml
prepareSandbox --> jar & instrumentedJar
publishPlugin --> buildPlugin & signPlugin
runIde --> patchPluginXml & prepareSandbox
signPlugin --> buildPlugin
runIde --> prepareSandbox_patchPluginXml
prepareTest --> prepareSandbox_patchPluginXml
test --> prepareTest
testIdePerformance
testIdePerformance --> prepareSandbox
testIdeUi
verifyPlugin --> buildPlugin
verifyPluginProjectConfiguration --> patchPluginXml
verifyPluginSignature
verifyPluginStructure --> prepareSandbox
verifyPlugin --> buildPlugin
click initializeIntelliJPlatformPlugin "#initializeIntelliJPlatformPlugin"
@ -142,8 +134,12 @@ flowchart LR
## `buildPlugin`
{#buildPlugin}
<link-summary>Builds the plugin and prepares the ZIP archive for testing and deployment.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module), [](tools_intellij_platform_gradle_plugin_plugins.md#base)
**Depends on**: [`jarSearchableOptions`](#jarSearchableOptions), [`prepareSandbox`](#prepareSandbox)
**Extends**: [`Zip`][gradle-zip-task]
@ -180,6 +176,8 @@ Type
## `buildSearchableOptions`
{#buildSearchableOptions}
<link-summary>Builds the index of UI components (searchable options) for the plugin.</link-summary>
<tldr>
**Depends on**: [`prepareSandbox`](#prepareSandbox)
@ -230,9 +228,15 @@ Default value
## `composedJar`
{#composedJar}
<link-summary>Composes a final Jar archive by combining the base jar, and instrumented classes, and declared submodules.</link-summary>
<tldr>
**Extends**: [`Jar`][gradle-jar-task], [`instrumentedJar`](#instrumentedJar)
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`jar`][gradle-jar-task], [`instrumentedJar`](#instrumentedJar)
**Extends**: [`Jar`][gradle-jar-task]
**Sources**: [`ComposedJarTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/ComposedJarTask.kt)
@ -258,8 +262,12 @@ Type
## `generateManifest`
{#generateManifest}
<link-summary>Generates the <path>MANIFEST.MF</path> file with all relevant information about the project configuration.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Extends**: [`DefaultTask`][gradle-default-task], [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware)
**Sources**: [`InitializeIntelliJPlatformPluginTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/InitializeIntelliJPlatformPluginTask.kt)
@ -327,8 +335,12 @@ Type
## `initializeIntelliJPlatformPlugin`
{#initializeIntelliJPlatformPlugin}
<link-summary>Initializes the IntelliJ Platform Gradle Plugin</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module), [](tools_intellij_platform_gradle_plugin_plugins.md#base)
**Extends**: [`DefaultTask`][gradle-default-task], [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware)
**Sources**: [`InitializeIntelliJPlatformPluginTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/InitializeIntelliJPlatformPluginTask.kt)
@ -433,8 +445,14 @@ Type
## `instrumentCode`
{#instrumentCode}
<link-summary>Executes the code instrumentation.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`jar`][gradle-jar-task]
**Extends**: [`DefaultTask`][gradle-default-task], [`JavaCompilerAware`](tools_intellij_platform_gradle_plugin_task_awares.md#JavaCompilerAware)
**Sources**: [`InstrumentCodeTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/InstrumentCodeTask.kt)
@ -525,8 +543,12 @@ Type
## `instrumentedJar`
{#instrumentedJar}
<link-summary>Creates a Jar file with instrumented classes.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: `jar`, [`instrumentCode`](#instrumentCode)
**Extends**: [`Jar`][gradle-jar-task]
@ -540,8 +562,12 @@ Creates a copy of the current module's `jar` task output with instrumented class
## `jarSearchableOptions`
{#jarSearchableOptions}
<link-summary>Creates a Jar file with searchable options to be distributed with the plugin.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildSearchableOptions`](#buildSearchableOptions), [`patchPluginXml`](#patchPluginXml), [`prepareSandbox`](#prepareSandbox)
**Extends**: [`Jar`][gradle-jar-task], [`PluginAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginAware), [`SandboxAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxAware)
@ -550,7 +576,7 @@ Creates a copy of the current module's `jar` task output with instrumented class
</tldr>
Creates a JAR file with searchable options to be distributed with the plugin.
Creates a Jar file with searchable options to be distributed with the plugin.
### `destinationDirectory`
@ -597,15 +623,19 @@ Default value
## `patchPluginXml`
{#patchPluginXml}
<link-summary>Patches <path>plugin.xml</path> file with provided values.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Extends**: [`DefaultTask`][gradle-default-task], [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware)
**Sources**: [`PatchPluginXmlTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/PatchPluginXmlTask.kt)
</tldr>
Patches <path>plugin.xml</path> files with values provided with the [`intelliJPlatform.pluginConfiguration`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration) extension.
Patches <path>plugin.xml</path> file with values provided with the [`intelliJPlatform.pluginConfiguration`](tools_intellij_platform_gradle_plugin_extension.md#intellijPlatform-pluginConfiguration) extension.
### `inputFile`
@ -872,8 +902,12 @@ Default value
## `prepareSandbox`
{#prepareSandbox}
<link-summary>Prepares a sandbox environment with the plugin and its dependencies installed.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: `jar`, [`instrumentedJar`](#instrumentedJar)
**Extends**: [`Sync`][gradle-jar-task], [`SandboxProducerAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxProducerAware)
@ -980,8 +1014,12 @@ Type
## `prepareTest`
{#prepareTest}
<link-summary>Prepares the test task.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`prepareTestSandbox`](#prepareTestSandbox)
**Extends**: [`DefaultTask`][gradle-default-task], [`TestableAware`](tools_intellij_platform_gradle_plugin_task_awares.md#TestableAware)
@ -997,8 +1035,12 @@ Prepares an immutable [`test`](#test) task and provides all necessary dependenci
## `prepareTestSandbox`
{#prepareTestSandbox}
<link-summary>Prepares the test task sandbox.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: `jar`, [`instrumentedJar`](#instrumentedJar)
**Extends**: [`Sync`][gradle-jar-task], [`SandboxProducerAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxProducerAware)
@ -1014,8 +1056,12 @@ The [`prepareSandbox`](#prepareSandbox) task instance configured to work with th
## `printBundledPlugins`
{#printBundledPlugins}
<link-summary>Prints the list of bundled plugins available within the currently targeted IntelliJ Platform.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module), [](tools_intellij_platform_gradle_plugin_plugins.md#base)
**Extends**: [`DefaultTask`][gradle-default-task], [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware)
**Sources**: [`PrintBundledPluginsTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/PrintBundledPluginsTask.kt)
@ -1029,8 +1075,12 @@ Prints the list of bundled plugins available within the currently targeted Intel
## `printProductsReleases`
{#printProductsReleases}
<link-summary>Prints the list of binary product releases that match criteria.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module), [](tools_intellij_platform_gradle_plugin_plugins.md#base)
**Extends**: [`DefaultTask`][gradle-default-task], [`ProductReleasesValueSource.FilterParameters`](tools_intellij_platform_gradle_plugin_types.md#ProductReleasesValueSource-FilterParameters)
**Sources**: [`PrintProductsReleasesTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/PrintProductsReleasesTask.kt)
@ -1065,8 +1115,12 @@ See also:
## `publishPlugin`
{#publishPlugin}
<link-summary>Publishes the plugin to the remote plugins repository.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildPlugin`](#buildPlugin), [`signPlugin`](#signPlugin)
**Extends**: [`DefaultTask`][gradle-default-task]
@ -1172,8 +1226,12 @@ Default value
## `runIde`
{#runIde}
<link-summary>Runs the IDE instance using the currently selected IntelliJ Platform with the built plugin loaded.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`patchPluginXml`](#patchPluginXml), [`prepareSandbox`](#prepareSandbox)
**Extends**: [`JavaExec`][gradle-javaexec-task], [`RunnableIdeAware`](tools_intellij_platform_gradle_plugin_task_awares.md#RunnableIdeAware), [`SplitModeAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SplitModeAware), [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware)
@ -1193,8 +1251,14 @@ To register a customized task, use [`intelliJPlatformTestingExtension.runIde`](t
## `setupDependencies`
{#setupDependencies}
<link-summary>Deprecated. A deprecated method for setting up IntelliJ Platform dependencies.</link-summary>
<secondary-label ref="deprecated"/>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module), [](tools_intellij_platform_gradle_plugin_plugins.md#base)
**Extends**: [`DefaultTask`][gradle-default-task]
**Sources**: [`SetupDependenciesTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/SetupDependenciesTask.kt)
@ -1215,8 +1279,12 @@ This method is no longer needed as the dependency on IntelliJ Platform is declar
## `signPlugin`
{#signPlugin}
<link-summary>Signs the ZIP archive with the provided key using Marketplace ZIP Signer library.2</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildPlugin`](#buildPlugin)
**Extends**: [`JavaExec`][gradle-javaexec-task], [`SigningAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SigningAware)
@ -1417,8 +1485,12 @@ Default value
## `test`
{#test}
<link-summary>The base Gradle test task preconfigured to run IntelliJ Platform tests.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`prepareTest`](#prepareTest)
**Extends**: [`DefaultTask`][gradle-default-task], [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware), [`PluginAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginAware)
@ -1433,11 +1505,15 @@ The task itself isn't mutated and a dedicated [`prepareTest`](#prepareTest) task
## `testIde`*
## `testIde`
{#testIde}
<link-summary>Runs tests using a custom IntelliJ Platform with the developed plugin installed.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`prepareTest`](#prepareTest)
**Extends**: [`DefaultTask`][gradle-default-task], [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware), [`PluginAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginAware)
@ -1448,9 +1524,9 @@ The task itself isn't mutated and a dedicated [`prepareTest`](#prepareTest) task
> The `testIde` task is not registered by default.
>
{style="tip"}
{style="warning"}
Runs plugin tests against the currently selected IntelliJ Platform with the built plugin loaded.
Runs tests using a custom IntelliJ Platform with the developed plugin installed.
It directly extends the [Test][gradle-test-task] Gradle task, which allows for an extensive configuration (system properties, memory management, etc.).
The [`TestIdeTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/TestIdeTask.kt) is a class used only for handling custom `testIde` tasks.
@ -1462,6 +1538,20 @@ To register a customized test task, use [`intelliJPlatformTestingExtension.testI
## `testIdePerformance`
{#testIdePerformance}
<link-summary>Runs performance tests on the IntelliJ Platform with the developed plugin installed.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`prepareSandbox`](#prepareSandbox)
**Extends**: [`JavaExec`][gradle-javaexec-task], [`RunnableIdeAware`](tools_intellij_platform_gradle_plugin_task_awares.md#RunnableIdeAware), [`TestableAware`](tools_intellij_platform_gradle_plugin_task_awares.md#TestableAware), [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware)
**Sources**: [`TestIdePerformanceTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/TestIdePerformanceTask.kt)
</tldr>
> Not implemented.
>
{style="warning"}
@ -1471,6 +1561,18 @@ To register a customized test task, use [`intelliJPlatformTestingExtension.testI
## `testIdeUi`
{#testIdeUi}
<link-summary>Runs the IDE instance with the developed plugin and Starter framework for UI testing.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Extends**: [`Test`][gradle-test-task], [`TestableAware`](tools_intellij_platform_gradle_plugin_task_awares.md#TestableAware)
**Sources**: [`TestIdeUiTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/TestIdeUiTask.kt)
</tldr>
Runs the IDE instance with the developed plugin and Starter framework for UI testing.
@ -1491,8 +1593,12 @@ Default value
## `verifyPluginProjectConfiguration`
{#verifyPluginProjectConfiguration}
<link-summary>Validates the plugin project configuration.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`patchPluginXml`](#patchPluginXml)
**Extends**: [`DefaultTask`][gradle-default-task], [`IntelliJPlatformVersionAware`](tools_intellij_platform_gradle_plugin_task_awares.md#IntelliJPlatformVersionAware), [`PluginAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginAware)
@ -1706,8 +1812,12 @@ Default value
## `verifyPluginSignature`
{#verifyPluginSignature}
<link-summary>Validates the signature of the plugin archive file using the Marketplace ZIP Signer library.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Extends**: [`JavaExec`][gradle-javaexec-task], [`SigningAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SigningAware)
**Sources**: [`PrepareSandboxTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/VerifyPluginSignatureTask.kt)
@ -1768,8 +1878,12 @@ Default value
## `verifyPluginStructure`
{#verifyPluginStructure}
<link-summary>Validates completeness and contents of <path>plugin.xml</path> descriptors as well as plugin archive structure.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`prepareSandbox`](#prepareSandbox)
**Extends**: [`DefaultTask`][gradle-default-task], [`SandboxAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxAware)
@ -1840,8 +1954,12 @@ Default value
## `verifyPlugin`
{#verifyPlugin}
<link-summary>Runs the IntelliJ Plugin Verifier CLI tool to check the binary compatibility with specified IDE builds.</link-summary>
<tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildPlugin`](#buildPlugin)
**Extends**: [`JavaExec`][gradle-javaexec-task], [`RuntimeAware`](tools_intellij_platform_gradle_plugin_task_awares.md#RuntimeAware), [`PluginVerifierAware`](tools_intellij_platform_gradle_plugin_task_awares.md#PluginVerifierAware)