[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+"> <primary-label id="2024.3" short-name="2024.3+" name="2024.3+">
Available in IDE version 2024.3 or later Available in IDE version 2024.3 or later
</primary-label> </primary-label>
<secondary-label id="deprecated" name="Deprecated" color="red">
This item is marked as deprecated.
</secondary-label>
</labels> </labels>

View File

@ -46,6 +46,9 @@ flowchart TB
## Platform ## 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`** **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
{#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`** **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. 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. 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
{#settings}
<link-summary>Plugin available for use in Gradle settings file.</link-summary>
**Plugin ID: `org.jetbrains.intellij.platform.settings`** **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>. 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> <path>settings.gradle.kts</path>
@ -188,7 +241,11 @@ dependencies {
} }
``` ```
## Migration ## 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`** **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. See [](tools_intellij_platform_gradle_plugin_migration.md) for more details.
## Base ## 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`** **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). 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. 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 initializeIntelliJPlatformPlugin
subgraph ALL ["` `"] subgraph ALL ["` `"]
subgraph BUILD ["Build"] subgraph BASE ["Base"]
buildPlugin printBundledPlugins
buildSearchableOptions printProductsReleases
jarSearchableOptions setupDependencies
subgraph prepareSandbox_patchPluginXml ["` `"]
prepareSandbox
patchPluginXml
end
subgraph instrumentation
direction BT
instrumentedJar
instrumentCode
end
end end
subgraph PUBLISH ["Publish"] subgraph MODULE ["Module"]
publishPlugin prepareSandbox
signPlugin prepareTestSandbox
end composedJar
generateManifest
subgraph TEST ["Test"] instrumentCode
runIde instrumentedJar
prepareTest prepareTest
testIdePerformance>testIdePerformance] testIde
testIdeUi>testIdeUi]
end
subgraph VERIFY ["Verify"]
direction TB
verifyPlugin
verifyPluginSignature
verifyPluginStructure
verifyPluginProjectConfiguration verifyPluginProjectConfiguration
end end
TEST ~~~ VERIFY subgraph PLATFORM ["Platform"]
buildPlugin
printBundledPlugins buildSearchableOptions
printProductsReleases jarSearchableOptions
patchPluginXml
publishPlugin
runIde
signPlugin
testIdePerformance
testIdeUi
verifyPluginSignature
verifyPluginStructure
verifyPlugin
end
end end
end end
@ -81,30 +70,33 @@ flowchart LR
end end
initializeIntelliJPlatformPlugin --> | runs before | ALL %% initializeIntelliJPlatformPlugin --> | runs before | ALL
printBundledPlugins
printProductsReleases
setupDependencies
buildPlugin --> jarSearchableOptions & prepareSandbox_patchPluginXml composedJar --> jar & instrumentedJar
buildSearchableOptions --> prepareSandbox_patchPluginXml generateManifest
instrumentCode --> compile instrumentCode --> compile
instrumentedJar --> jar & instrumentCode 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 patchPluginXml
prepareSandbox --> jar & instrumentedJar
publishPlugin --> buildPlugin & signPlugin publishPlugin --> buildPlugin & signPlugin
runIde --> patchPluginXml & prepareSandbox
signPlugin --> buildPlugin signPlugin --> buildPlugin
testIdePerformance --> prepareSandbox
runIde --> prepareSandbox_patchPluginXml
prepareTest --> prepareSandbox_patchPluginXml
test --> prepareTest
testIdePerformance
testIdeUi testIdeUi
verifyPlugin --> buildPlugin
verifyPluginProjectConfiguration --> patchPluginXml
verifyPluginSignature verifyPluginSignature
verifyPluginStructure --> prepareSandbox verifyPluginStructure --> prepareSandbox
verifyPlugin --> buildPlugin
click initializeIntelliJPlatformPlugin "#initializeIntelliJPlatformPlugin" click initializeIntelliJPlatformPlugin "#initializeIntelliJPlatformPlugin"
@ -142,8 +134,12 @@ flowchart LR
## `buildPlugin` ## `buildPlugin`
{#buildPlugin} {#buildPlugin}
<link-summary>Builds the plugin and prepares the ZIP archive for testing and deployment.</link-summary>
<tldr> <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) **Depends on**: [`jarSearchableOptions`](#jarSearchableOptions), [`prepareSandbox`](#prepareSandbox)
**Extends**: [`Zip`][gradle-zip-task] **Extends**: [`Zip`][gradle-zip-task]
@ -180,6 +176,8 @@ Type
## `buildSearchableOptions` ## `buildSearchableOptions`
{#buildSearchableOptions} {#buildSearchableOptions}
<link-summary>Builds the index of UI components (searchable options) for the plugin.</link-summary>
<tldr> <tldr>
**Depends on**: [`prepareSandbox`](#prepareSandbox) **Depends on**: [`prepareSandbox`](#prepareSandbox)
@ -230,9 +228,15 @@ Default value
## `composedJar` ## `composedJar`
{#composedJar} {#composedJar}
<link-summary>Composes a final Jar archive by combining the base jar, and instrumented classes, and declared submodules.</link-summary>
<tldr> <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) **Sources**: [`ComposedJarTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/ComposedJarTask.kt)
@ -258,8 +262,12 @@ Type
## `generateManifest` ## `generateManifest`
{#generateManifest} {#generateManifest}
<link-summary>Generates the <path>MANIFEST.MF</path> file with all relevant information about the project configuration.</link-summary>
<tldr> <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) **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) **Sources**: [`InitializeIntelliJPlatformPluginTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/InitializeIntelliJPlatformPluginTask.kt)
@ -327,8 +335,12 @@ Type
## `initializeIntelliJPlatformPlugin` ## `initializeIntelliJPlatformPlugin`
{#initializeIntelliJPlatformPlugin} {#initializeIntelliJPlatformPlugin}
<link-summary>Initializes the IntelliJ Platform Gradle Plugin</link-summary>
<tldr> <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) **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) **Sources**: [`InitializeIntelliJPlatformPluginTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/InitializeIntelliJPlatformPluginTask.kt)
@ -433,8 +445,14 @@ Type
## `instrumentCode` ## `instrumentCode`
{#instrumentCode} {#instrumentCode}
<link-summary>Executes the code instrumentation.</link-summary>
<tldr> <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) **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) **Sources**: [`InstrumentCodeTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/InstrumentCodeTask.kt)
@ -525,8 +543,12 @@ Type
## `instrumentedJar` ## `instrumentedJar`
{#instrumentedJar} {#instrumentedJar}
<link-summary>Creates a Jar file with instrumented classes.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: `jar`, [`instrumentCode`](#instrumentCode) **Depends on**: `jar`, [`instrumentCode`](#instrumentCode)
**Extends**: [`Jar`][gradle-jar-task] **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`
{#jarSearchableOptions} {#jarSearchableOptions}
<link-summary>Creates a Jar file with searchable options to be distributed with the plugin.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildSearchableOptions`](#buildSearchableOptions), [`patchPluginXml`](#patchPluginXml), [`prepareSandbox`](#prepareSandbox) **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) **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> </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` ### `destinationDirectory`
@ -597,15 +623,19 @@ Default value
## `patchPluginXml` ## `patchPluginXml`
{#patchPluginXml} {#patchPluginXml}
<link-summary>Patches <path>plugin.xml</path> file with provided values.</link-summary>
<tldr> <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) **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) **Sources**: [`PatchPluginXmlTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/PatchPluginXmlTask.kt)
</tldr> </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` ### `inputFile`
@ -872,8 +902,12 @@ Default value
## `prepareSandbox` ## `prepareSandbox`
{#prepareSandbox} {#prepareSandbox}
<link-summary>Prepares a sandbox environment with the plugin and its dependencies installed.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: `jar`, [`instrumentedJar`](#instrumentedJar) **Depends on**: `jar`, [`instrumentedJar`](#instrumentedJar)
**Extends**: [`Sync`][gradle-jar-task], [`SandboxProducerAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxProducerAware) **Extends**: [`Sync`][gradle-jar-task], [`SandboxProducerAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxProducerAware)
@ -980,8 +1014,12 @@ Type
## `prepareTest` ## `prepareTest`
{#prepareTest} {#prepareTest}
<link-summary>Prepares the test task.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`prepareTestSandbox`](#prepareTestSandbox) **Depends on**: [`prepareTestSandbox`](#prepareTestSandbox)
**Extends**: [`DefaultTask`][gradle-default-task], [`TestableAware`](tools_intellij_platform_gradle_plugin_task_awares.md#TestableAware) **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`
{#prepareTestSandbox} {#prepareTestSandbox}
<link-summary>Prepares the test task sandbox.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: `jar`, [`instrumentedJar`](#instrumentedJar) **Depends on**: `jar`, [`instrumentedJar`](#instrumentedJar)
**Extends**: [`Sync`][gradle-jar-task], [`SandboxProducerAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxProducerAware) **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`
{#printBundledPlugins} {#printBundledPlugins}
<link-summary>Prints the list of bundled plugins available within the currently targeted IntelliJ Platform.</link-summary>
<tldr> <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) **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) **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`
{#printProductsReleases} {#printProductsReleases}
<link-summary>Prints the list of binary product releases that match criteria.</link-summary>
<tldr> <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) **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) **Sources**: [`PrintProductsReleasesTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/PrintProductsReleasesTask.kt)
@ -1065,8 +1115,12 @@ See also:
## `publishPlugin` ## `publishPlugin`
{#publishPlugin} {#publishPlugin}
<link-summary>Publishes the plugin to the remote plugins repository.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildPlugin`](#buildPlugin), [`signPlugin`](#signPlugin) **Depends on**: [`buildPlugin`](#buildPlugin), [`signPlugin`](#signPlugin)
**Extends**: [`DefaultTask`][gradle-default-task] **Extends**: [`DefaultTask`][gradle-default-task]
@ -1172,8 +1226,12 @@ Default value
## `runIde` ## `runIde`
{#runIde} {#runIde}
<link-summary>Runs the IDE instance using the currently selected IntelliJ Platform with the built plugin loaded.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`patchPluginXml`](#patchPluginXml), [`prepareSandbox`](#prepareSandbox) **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) **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`
{#setupDependencies} {#setupDependencies}
<link-summary>Deprecated. A deprecated method for setting up IntelliJ Platform dependencies.</link-summary>
<secondary-label ref="deprecated"/>
<tldr> <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] **Extends**: [`DefaultTask`][gradle-default-task]
**Sources**: [`SetupDependenciesTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/SetupDependenciesTask.kt) **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`
{#signPlugin} {#signPlugin}
<link-summary>Signs the ZIP archive with the provided key using Marketplace ZIP Signer library.2</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildPlugin`](#buildPlugin) **Depends on**: [`buildPlugin`](#buildPlugin)
**Extends**: [`JavaExec`][gradle-javaexec-task], [`SigningAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SigningAware) **Extends**: [`JavaExec`][gradle-javaexec-task], [`SigningAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SigningAware)
@ -1417,8 +1485,12 @@ Default value
## `test` ## `test`
{#test} {#test}
<link-summary>The base Gradle test task preconfigured to run IntelliJ Platform tests.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`prepareTest`](#prepareTest) **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) **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} {#testIde}
<link-summary>Runs tests using a custom IntelliJ Platform with the developed plugin installed.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`prepareTest`](#prepareTest) **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) **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. > 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.). 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. 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`
{#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. > Not implemented.
> >
{style="warning"} {style="warning"}
@ -1471,6 +1561,18 @@ To register a customized test task, use [`intelliJPlatformTestingExtension.testI
## `testIdeUi` ## `testIdeUi`
{#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. Runs the IDE instance with the developed plugin and Starter framework for UI testing.
@ -1491,8 +1593,12 @@ Default value
## `verifyPluginProjectConfiguration` ## `verifyPluginProjectConfiguration`
{#verifyPluginProjectConfiguration} {#verifyPluginProjectConfiguration}
<link-summary>Validates the plugin project configuration.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform), [](tools_intellij_platform_gradle_plugin_plugins.md#module)
**Depends on**: [`patchPluginXml`](#patchPluginXml) **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) **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`
{#verifyPluginSignature} {#verifyPluginSignature}
<link-summary>Validates the signature of the plugin archive file using the Marketplace ZIP Signer library.</link-summary>
<tldr> <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) **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) **Sources**: [`PrepareSandboxTask`](%gh-ijpgp-master%/src/main/kotlin/org/jetbrains/intellij/platform/gradle/tasks/VerifyPluginSignatureTask.kt)
@ -1768,8 +1878,12 @@ Default value
## `verifyPluginStructure` ## `verifyPluginStructure`
{#verifyPluginStructure} {#verifyPluginStructure}
<link-summary>Validates completeness and contents of <path>plugin.xml</path> descriptors as well as plugin archive structure.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`prepareSandbox`](#prepareSandbox) **Depends on**: [`prepareSandbox`](#prepareSandbox)
**Extends**: [`DefaultTask`][gradle-default-task], [`SandboxAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxAware) **Extends**: [`DefaultTask`][gradle-default-task], [`SandboxAware`](tools_intellij_platform_gradle_plugin_task_awares.md#SandboxAware)
@ -1840,8 +1954,12 @@ Default value
## `verifyPlugin` ## `verifyPlugin`
{#verifyPlugin} {#verifyPlugin}
<link-summary>Runs the IntelliJ Plugin Verifier CLI tool to check the binary compatibility with specified IDE builds.</link-summary>
<tldr> <tldr>
**Available in:** [](tools_intellij_platform_gradle_plugin_plugins.md#platform)
**Depends on**: [`buildPlugin`](#buildPlugin) **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) **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)