IntelliJ Platform Plugin SDK Help

Tasks

The IntelliJ Platform Gradle Plugin introduces a set of tasks to handle activities of the plugin development for IntelliJ-based IDEs, such as building, verifying, testing, and publishing the plugin archive.

Tasks related to the IntelliJ Platform Gradle Plugin are selectively applied to your project based on specific conditions or criteria defined within the plugin's context. This means that the plugin intelligently determines which tasks are relevant and necessary based on the current state or configuration of your project. This contextual application of tasks ensures that the plugin operates efficiently, performing only those actions that are appropriate for the given project environment at any time.

Tasks have dependencies on each other, they inherit from Task Awares interfaces, respect configuration and build cache, and can be configured independently. However, most cases will be covered by the IntelliJ Platform Extension.

buildPlugin

Builds the plugin and prepares the ZIP archive for testing and deployment.

It takes the output of the prepareSandbox task containing the built project with all its modules and dependencies, and the output of jarSearchableOptions task.

The produced archive is stored in [buildDirectory]/distributions/archiveFile, where the name and location of archiveFile can be controlled with properties provided with the Zip base task. By default, the archiveBaseName is set to the plugin name specified in the plugin.xml file, after it gets patched with the patchPluginXml task.

archiveFile

Specifies the archive file representing the output file produced by the task.

Type

RegularFileProperty

buildSearchableOptions

Builds the index of UI components (searchable options) for the plugin. This task runs a headless IDE instance to collect all the available options provided by the plugin's Settings.

If the plugin doesn't implement custom settings, it is recommended to disable this task via intellijPlatform.buildSearchableOptions flag.

In the case of running the task for the plugin that has intellijPlatform.pluginConfiguration.productDescriptor defined, a warning will be logged regarding potential issues with running headless IDE for paid plugins. It is possible to mute this warning with the paidPluginSearchableOptionsWarning Gradle property.

outputDirectory

Specifies the directory where searchable options will be generated.

Type

DirectoryProperty

Default value

[buildDirectory]/searchableOptions

showPaidPluginWarning

Emits a warning when the task is executed by a paid plugin. Can be disabled with the paidPluginSearchableOptionsWarning Gradle property.

Type

Property<Boolean>

Default value

paidPluginSearchableOptionsWarning && productDescriptor is defined

composedJar

Composes a final JAR by combining the output of base jar or instrumentedJar tasks, depending on if code instrumentation is enabled with intellijPlatform.instrumentCode.

The final JAR is also combined with plugin modules marked using the pluginModule dependencies helper.

archiveFile

Specifies the archive file representing the output file produced by the task.

Type

RegularFileProperty

generateManifest

Generates the MANIFEST.MF file with all relevant information about the project configuration.

To apply the produced manifest file, JarCompanion.applyPluginManifest method should be called on a task extending Jar.

This file is bundled into the output JAR files produced by composedJar, instrumentedJar, and Jar tasks.

pluginVersion

The IntelliJ Platform Gradle Plugin version.

Type

Property<String>

gradleVersion

The version of currently used Gradle.

Type

Property<String>

productInfo

The [ProductInfo] instance of the current IntelliJ Platform.

Type

Property<ProductInfo>

version

Plugin version.

Type

Property<String>

generatedManifest

Location of the generated MANIFEST.MF file.

Type

RegularFileProperty

initializeIntelliJPlatformPlugin

Executes before every other task introduced by IntelliJ Platform Gradle Plugin to prepare it to run. It is responsible for:

  • checking if the project uses IntelliJ Platform Gradle Plugin in the latest available version

  • preparing the KotlinX Coroutines Java Agent file to enable coroutines debugging when developing the plugin

The self-update check can be disabled via selfUpdateCheck Gradle property. To make the Coroutines Java Agent available for the task, inherit from CoroutinesJavaAgentAware.

offline

Determines if the operation is running in offline mode and depends on Gradle start parameters.

Type

Property<Boolean>

Default value

StartParameter.isOffline

See also:

selfUpdateCheck

Represents the property for checking if self-update checks are enabled.

Type

Property<Boolean>

Default value

selfUpdateCheck

selfUpdateLock

Represents a lock file used to limit the plugin version checks in time. If the file is missing and other conditions are met, the version check is performed.

Type

RegularFileProperty

coroutinesJavaAgent

Specifies the Java Agent file for the Coroutines library required to enable coroutines debugging.

Type

Property<Boolean>

Default value

[buildDirectory]/tmp/initializeIntelliJPlatformPlugin/coroutines-javaagent.jar

pluginVersion

Represents the current version of the plugin.

Type

Property<String>

latestPluginVersion

Represents the latest version of the plugin.

Type

Property<String>

module

Defines that the current project has only the Module applied but no Platform.

Type

Property<String>

instrumentCode

Executes the code instrumentation using the Ant tasks provided by the used IntelliJ Platform dependency. The code instrumentation scans the compiled Java and Kotlin classes for JetBrains Annotations usages to replace them with their relevant functionalities.

The task is controlled with the intellijPlatform.instrumentCode extension property, enabled by default. To properly run the instrumentation, it is required to add instrumentationTools() dependencies to the project. This dependency is available via the intellijDependencies() repository, which can be added separately or using the defaultRepositories() helper.

See also:

sourceSetCompileClasspath

Specifies the compile classpath of the project's source set.

Type

ConfigurableFileCollection

classesDirs

Specifies the list of directories with compiled classes.

Type

ConfigurableFileCollection

Default value

classesDirs of the project's source sets.

formsDirs

Specifies the list of directories with GUI Designer form files.

Type

ConfigurableFileCollection

Default value:

.form files of the project's source sets.

sourceDirs

Specifies the location of the source code.

Type

ConfigurableFileCollection

instrumentationLogs

Enables INFO logging when running Ant tasks.

Type

Property<Boolean>

Default value:

false

outputDirectory

Specifies the output directory for instrumented classes.

Type

DirectoryProperty

instrumentedJar

Creates a copy of the current module's jar task output with instrumented classes added.

jarSearchableOptions

Creates a JAR file with searchable options to be distributed with the plugin.

destinationDirectory

Specifies the directory where the JAR file will be created.

Type

DirectoryProperty

Default value

[buildDirectory]/libs

noSearchableOptionsWarning

Specifies if a warning is emitted when no searchable options are found. Can be disabled with noSearchableOptionsWarning Gradle property.

Type

Property<Boolean>

Default value

noSearchableOptionsWarning

patchPluginXml

Patches plugin.xml file with values provided with the intelliJPlatform.pluginConfiguration extension.

inputFile

Specifies the input plugin.xml file, which by default is picked from the main resource location.

Type

RegularFileProperty

Default value

src/main/resources/META-INF/plugin.xml

outputFile

Specifies the patched output plugin.xml file, which by default is written to a temporary task-specific directory within the build directory.

Type

RegularFileProperty

Default value

[buildDirectory]/tmp/patchPluginXml/plugin.xml

pluginId

Specifies a unique plugin identifier, which should be a fully qualified name similar to Java packages and must not collide with the ID of existing plugins. The ID is a technical value used to identify the plugin in the IDE and JetBrains Marketplace. The provided value will be assigned to the <id> element.

Please use characters, numbers, and ./-/_ symbols only and keep it reasonably short.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.id

pluginName

Specifies the user-visible plugin name. It should use Title Case. The provided value will be assigned to the <name> element.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.name

pluginVersion

Specifies the plugin version displayed in the Plugins settings dialog and on the JetBrains Marketplace plugin page. Plugins uploaded to JetBrains Marketplace must follow semantic versioning. The provided value will be assigned to the <version> element.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.version

pluginDescription

Specifies the plugin description displayed in the Plugins settings dialog and on the JetBrains Marketplace plugin page. Simple HTML elements, like text formatting, paragraphs, lists, etc., are allowed. The description content is automatically wrapped in <![CDATA[... ]]>. The provided value will be assigned to the <description> element.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.description

changeNotes

A short summary of new features, bugfixes, and changes provided in this plugin version. Change notes are displayed on the JetBrains Marketplace plugin page and in the Plugins settings dialog. Simple HTML elements, like text formatting, paragraphs, lists, etc., are allowed.

The change notes content is automatically wrapped in <![CDATA[... ]]>. The provided value will be assigned to the <change-notes> element.

To maintain and generate an up-to-date changelog, try using Gradle Changelog Plugin.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.changeNotes

productDescriptorCode

The plugin product code used in the JetBrains Sales System. The code must be agreed with JetBrains in advance and follow the requirements. The provided value will be assigned to the <product-descriptor code=""> element attribute.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.productDescriptor.code

productDescriptorReleaseDate

Date of the major version release in the YYYYMMDD format. The provided value will be assigned to the <product-descriptor release-date=""> element attribute.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.productDescriptor.releaseDate

productDescriptorReleaseVersion

Specifies the major version of the plugin in a special number format used for paid plugins on JetBrains Marketplace. The provided value will be assigned to the <product-descriptor release-version=""> element attribute.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.productDescriptor.releaseVersion

productDescriptorOptional

Specifies the boolean value determining whether the plugin is a Freemium plugin. The provided value will be assigned to the <product-descriptor optional=""> element attribute.

Type

Property<Boolean>

Default value

intellijPlatform.pluginConfiguration.productDescriptor.optional

productDescriptorEap

Specifies the boolean value determining whether the plugin is an EAP release. The provided value will be assigned to the <product-descriptor eap=""> element attribute.

Type

Property<Boolean>

Default value

intellijPlatform.pluginConfiguration.productDescriptor.eap

sinceBuild

Specifies the lowest IDE version compatible with the plugin. The provided value will be assigned to the <idea-version since-build="..."/> element attribute.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.ideaVersion.sinceBuild

untilBuild

The highest IDE version compatible with the plugin. The until-build attribute can be unset by setting provider { null } as a value, and note that only passing null will make Gradle use the default value instead. However, if until-build is undefined, compatibility with all the IDEs since the version specified by the since-build is assumed, which can cause incompatibility errors in future builds.

The provided value will be assigned to the <idea-version until-build="..."/> element attribute.

The until-build attribute can be unset by setting provider { null } as a value.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.ideaVersion.untilBuild

vendorName

Specifies the vendor name or organization ID (if created) in the Plugins settings dialog and on the JetBrains Marketplace plugin page. The provided value will be assigned to the <vendor> element.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.vendor.name

vendorEmail

Specifies the vendor's email address. The provided value will be assigned to the <vendor email=""> element attribute.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.vendor.email

vendorUrl

Specifies the link to the vendor's homepage. The provided value will be assigned to the <vendor url=""> element attribute.

Type

Property<String>

Default value

intellijPlatform.pluginConfiguration.vendor.url

prepareJarSearchableOptions

Collects the content produced with buildSearchableOptions for the jarSearchableOptions.

inputDirectory

Specifies the directory where the prepared searchable options are read from.

Type

DirectoryProperty

Default value

buildSearchableOptions.outputDirectory

outputDirectory

Specifies the directory where the filtered content is placed.

Type

DirectoryProperty

Default value

[buildDirectory]/tmp/prepareJarSearchableOptions

libContainer

Specifies the lib directory within the current sandbox.

Type

DirectoryProperty

Default value

[prepareSandbox.pluginDirectory]/lib

composedJarFile

Specifies the final composed Jar archive with the plugin content.

Type

RegularFileProperty

Default value

composedJar.archiveFile

prepareSandbox

Prepares a sandbox environment with the plugin and its dependencies installed. The sandbox directory is required by tasks that run IDE and tests in isolation from other instances, like when multiple IntelliJ Platforms are used for testing with runIde, prepareTest, testIdeUi, or testIdePerformance tasks. The sandbox directory is created within the container configurable with intellijPlatform.sandboxContainer.

Tasks based on the PrepareSandboxTask are sandbox producers and can be associated with sandbox consumers. To define the consumer task, make it extend from SandboxAware and apply the consumer.applySandboxFrom(producer) function.

sandboxSuffix

Represents the suffix used i.e., for test-related or custom tasks.

The default suffix is composed of the task name (prepare[X]Sandbox[_Y]) to the -[X][Y] format.

Type

Property<String>

Default value

SandboxAware.sandboxPluginsDirectory

defaultDestinationDirectory

Specifies the default sandbox destination directory where plugin files will be copied.

Type

DirectoryProperty

Default value

SandboxAware.sandboxPluginsDirectory

pluginName

Specifies the name of the plugin directory in the sandbox.

Type

Property<String>

Default value

intellijPlatform.projectName

pluginDirectory

Specifies the directory where the plugin artifacts are to be placed.

Type

DirectoryProperty

Default value

defaultDestinationDirectory/projectName

disabledPlugins

An internal field to hold a list of plugins to be disabled within the current sandbox. This property is controlled with disablePlugin() method of IntelliJ Platform Testing Extension.

Type

SetProperty<String>

pluginJar

Specifies the output of the Jar task. The proper Jar.archiveFile picked depends on whether code instrumentation is enabled.

Type

RegularFileProperty

Default value

Jar.archiveFile

pluginsClasspath

Specifies a list of dependencies on external plugins resolved from the intellijPlatformPluginsExtracted configuration added with Dependencies Extension

Type

ConfigurableFileCollection

runtimeClasspath

Dependencies defined with the runtimeClasspath configuration.

Type

ConfigurableFileCollection

prepareTest

Prepares an immutable test task and provides all necessary dependencies and configurations for a proper testing configuration.

prepareTestSandbox

The prepareSandbox task instance configured to work with the test task.

printBundledPlugins

Prints the list of bundled plugins available within the currently targeted IntelliJ Platform.

printProductsReleases

Prints the list of binary product releases that, by default, match the currently selected IntelliJ Platform along with intellijPlatform.pluginConfiguration.ideaVersion.sinceBuild and intellijPlatform.pluginConfiguration.ideaVersion.untilBuild properties.

The filter used for retrieving the release list can be customized by using properties provided with ProductReleasesValueSource.FilterParameters.

productsReleases

Property that holds the list of product releases to print and which can be used to retrieve the result list.

Type

ListProperty<String>

Default value

The output of ProductReleasesValueSource using default configuration

See also:

publishPlugin

Publishes the plugin to the remote plugins repository, such as JetBrains Marketplace.

See also:

archiveFile

Specifies the ZIP archive file to be published to the remote repository. By default, it uses the output signPlugin.archiveFile if plugin signing is configured, otherwise the buildPlugin.archiveFile.

Type

RegularFileProperty

Default value

signPlugin.archiveFile or buildPlugin.archiveFile

See also:

host

Specifies the URL host of a plugin repository.

Type

Property<String>

Default value

intellijPlatform.publishing.host

token

Specifies the authorization token.

Type

Property<String>

Required

yes

Default value

intellijPlatform.publishing.token

channels

Specifies a list of JetBrains Marketplace channel names used as destination for the plugin upload.

Type

ListProperty<String>

Default value

intellijPlatform.publishing.channels

hidden

Publishes the plugin update and marks it as hidden to prevent public visibility after approval.

Type

Property<String>

Default value

intellijPlatform.publishing.hidden

ideServices

Specifies if the IDE Services plugin repository service should be used.

Type

Property<String>

Default value

intellijPlatform.publishing.ideServices

runIde

Runs the IDE instance using the currently selected IntelliJ Platform with the built plugin loaded. It directly extends the JavaExec Gradle task, which allows for an extensive configuration (system properties, memory management, etc.).

This task runs against the IntelliJ Platform and plugins specified in project dependencies. To register a customized task, use intelliJPlatformTestingExtension.runIde.

runIdeForUiTests

Runs the IDE instance using the currently selected IntelliJ Platform with the built plugin and Robot Server plugin loaded.

This task is not available by default and needs to be registered manually by applying the following code:

val runIdeForUiTests by intellijPlatformTesting.runIde.registering { task { jvmArgumentProviders += CommandLineArgumentProvider { listOf( "-Drobot-server.port=8082", "-Dide.mac.message.dialogs.as.sheets=false", "-Djb.privacy.policy.text=<!--999.999-->", "-Djb.consents.confirmation.enabled=false", ) } } plugins { robotServerPlugin() } }
intellijPlatformTesting.runIde { runIdeForUiTests { task { jvmArgumentProviders.add({ [ "-Drobot-server.port=8082", "-Dide.mac.message.dialogs.as.sheets=false", "-Djb.privacy.policy.text=<!--999.999-->", "-Djb.consents.confirmation.enabled=false", ] } as CommandLineArgumentProvider) } plugins { robotServerPlugin() } } }

setupDependencies

A deprecated method for setting up IntelliJ Platform dependencies.

The setupDependencies task was automatically added to the "After Sync" Gradle trigger to make the IntelliJ Platform dependency available for IntelliJ IDEA right after the Gradle synchronization. This method is no longer needed as the dependency on IntelliJ Platform is declared directly in Gradle dependencies.

signPlugin

Signs the ZIP archive with the provided key using the Marketplace ZIP Signer library. To sign the plugin before publishing to JetBrains Marketplace with the signPlugin task, it is required to provide a certificate chain and a private key with its password using intellijPlatform.signing extension. As soon as privateKey (or privateKeyFile) and certificateChain (or certificateChainFile properties are specified, the task will be executed automatically right before the publishPlugin task.

For more details, see Plugin Signing.

archiveFile

Specifies the unsigned ZIP archive input file. Corresponds to the in CLI option.

Type

RegularFileProperty

Default value

buildPlugin.archiveFile

signedArchiveFile

Specifies the signed ZIP archive output file. Corresponds to the out CLI option.

Predefined with the name of the ZIP archive file with -signed name suffix attached. The output file is placed next to the input archiveFile.

Type

RegularFileProperty

Default value

signPlugin.archiveFile with -signed suffix applied to the name

keyStore

Specifies the KeyStore file path. Corresponds to the ks CLI option.

Type

Property<String>

Default value

intellijPlatform.signing.keyStore

keyStorePassword

Specifies the KeyStore password. Corresponds to the ks-pass CLI option.

Type

Property<String>

Default value

intellijPlatform.signing.keyStorePassword

keyStoreKeyAlias

Specifies the KeyStore key alias. Corresponds to the ks-key-alias CLI option.

Type

Property<String>

Default value

intellijPlatform.signing.keyStoreKeyAlias

keyStoreType

Specifies the KeyStore type. Corresponds to the ks-type CLI option.

Type

Property<String>

Default value

intellijPlatform.signing.keyStoreType

keyStoreProviderName

Specifies the JCA KeyStore Provider name. Corresponds to the ks-provider-name CLI option.

Type

Property<String>

Default value

intellijPlatform.signing.keyStoreProviderName

privateKey

Specifies the encoded private key in the PEM format. Corresponds to the key CLI option.

Takes precedence over the privateKeyFile property.

Type

Property<String>

Default value

intellijPlatform.signing.privateKey

privateKeyFile

Specifies a file with an encoded private key in the PEM format. Corresponds to the key-file CLI option.

Type

RegularFileProperty

Default value

intellijPlatform.signing.privateKeyFile

password

Specifies the password required to decrypt the private key. Corresponds to the key-pass CLI option.

Type

Property<String>

Default value

intellijPlatform.signing.password

certificateChain

Specifies a string containing X509 certificates. The first certificate in the chain will be used as a certificate authority (CA). This parameter corresponds to the cert CLI option.

Takes precedence over the certificateChainFile property.

Type

Property<String>

Default value

intellijPlatform.signing.certificateChain

certificateChainFile

Specifies the path to the file containing X509 certificates. The first certificate in the chain will be used as a certificate authority (CA). Corresponds to the cert-file CLI option.

Type

RegularFileProperty

Default value

intellijPlatform.signing.certificateChainFile

test

The base Gradle test task is preconfigured using the TestCompanion class to run tests with IntelliJ Platform, sandbox, and all system properties set.

The task itself isn't mutated and a dedicated prepareTest task is involved to request for required IntelliJ Platform and sandbox configuration.

testIde

Runs tests using a custom IntelliJ Platform with the developed plugin installed. It directly extends the Test Gradle task, which allows for an extensive configuration (system properties, memory management, etc.).

The TestIdeTask is a class used only for handling custom testIde tasks.

To register a customized test task, use intelliJPlatformTestingExtension.testIde.

testIdePerformance

testIdeUi

Runs the IDE instance with the developed plugin and Starter framework for UI testing.

archiveFile

Specifies the archive file representing the input file to be tested.

Type

RegularFileProperty

Default value

buildPlugin.archiveFile

verifyPluginProjectConfiguration

Validates the plugin project configuration:

  • The patchPluginXml.sinceBuild property can't be lower than the target IntelliJ Platform major version.

  • The Java/Kotlin sourceCompatibility and targetCompatibility properties should be aligned with the Java versions required by patchPluginXml.sinceBuild and the currently used IntelliJ Platform.

  • The Kotlin API version should be aligned with the version required by patchPluginXml.sinceBuild and the currently used IntelliJ Platform.

  • The used IntelliJ Platform version should be higher than 2022.3 (223.0).

  • The dependency on the Kotlin Standard Library (stdlib) should be excluded.

  • The Kotlin plugin in version 1.8.20 is not used with IntelliJ Platform Gradle Plugin due to the 'java.lang.OutOfMemoryError: Java heap space' exception.

  • The Kotlin Coroutines library should not be added explicitly to the project as it is already provided with the IntelliJ Platform.

  • The IntelliJ Platform cache directory should be excluded from the version control system. Add the .intellijPlatform entry to the .gitignore file.

  • The currently selected Java Runtime is not JetBrains Runtime (JBR).

For more details regarding the Java version used in the specific IntelliJ SDK, see Build Number Ranges.

See also:

reportDirectory

Specifies the report directory where the verification result will be stored.

Type

DirectoryProperty

Default value

[buildDirectory]/reports/verifyPluginConfiguration

rootProject

Specifies the root project path.

Type

Property<File>

Default value

[rootProject]

intellijPlatformCache

Specifies the IntelliJ Platform cache directory.

Type

Property<File>

Default value

intellijPlatform.cachePath

gitignoreFile

Specifies the .gitignore file located in the [rootDirectory], tracked for content changes.

Type

Property<File>

Default value

[rootProject]/.gitignore

sourceCompatibility

Specifies the JavaCompile.sourceCompatibility property value defined in the build script.

Type

Property<String>

Default value

JavaCompile.sourceCompatibility

targetCompatibility

Specifies the JavaCompile.targetCompatibility property value defined in the build script.

Type

Property<String>

Default value

JavaCompile.targetCompatibility

kotlinPluginAvailable

Indicates that the Kotlin Gradle Plugin is loaded and available.

Type

Property<Boolean>

Default value

Kotlin Gradle Plugin presence

kotlinApiVersion

Specifies the apiVersion property value of compileKotlin.kotlinOptions defined in the build script.

Type

Property<String?>

Default value

compileKotlin.kotlinOptions.apiVersion

kotlinLanguageVersion

Specifies the languageVersion property value of compileKotlin.kotlinOptions defined in the build script.

Type

Property<String?>

Default value

compileKotlin.kotlinOptions.languageVersion

kotlinVersion

Specifies the version of Kotlin used in the project.

Type

Property<String?>

Default value

kotlin.coreLibrariesVersion

kotlinJvmTarget

Specifies the jvmTarget property value of compileKotlin.kotlinOptions defined in the build script.

Type

Property<String?>

Default value

compileKotlin.kotlinOptions.jvmTarget

kotlinStdlibDefaultDependency

Specifies the value of the kotlin.stdlib.default.dependency property as defined in the gradle.properties file.

Type

Property<Boolean>

Default value

kotlin.stdlib.default.dependency Gradle property

kotlinxCoroutinesLibraryPresent

Indicates whether the Kotlin Coroutines library is explicitly added to the project dependencies.

Type

Property<Boolean>

Default value

The org.jetbrains.kotlinx:kotlinx-coroutines dependency presence

hasModulePlugin

Defines if the current module is a main project or imported module, which uses Module plugin.

Type

Property<Boolean>

Default value

The Module plugin presence

verifyPluginSignature

Validates the signature of the plugin archive file using the Marketplace ZIP Signer library.

See also:

inputArchiveFile

Specifies the input, unsigned ZIP archive file. This parameter corresponds to the in CLI option.

Type

RegularFileProperty

Default value

signPlugin.signedArchiveFile

certificateChain

Specifies a string containing X509 certificates. The first certificate in the chain will be used as a certificate authority (CA). This parameter corresponds to the cert CLI option.

Takes precedence over the certificateChainFile property.

Type

Property<String>

certificateChainFile

Specifies the path to the file containing X509 certificates. The first certificate in the chain will be used as a certificate authority (CA). This parameter corresponds to the cert-file CLI option.

Type

RegularFileProperty

Default value

signPlugin.certificateChainFile or signPlugin.certificateChain written to a temporary file

verifyPluginStructure

Validates completeness and contents of plugin.xml descriptors as well as plugin archive structure.

See also:

ignoreFailures

Specifies whether the build should fail when the verifications performed by this task fail.

Type

Property<Boolean>

Default value

false

ignoreUnacceptableWarnings

Specifies whether the build should fail when the verifications performed by this task emit unacceptable warnings.

Type

Property<Boolean>

Default value

false

ignoreWarnings

Specifies whether the build should fail when the verifications performed by this task emit warnings.

Type

Property<Boolean>

Default value

true

pluginDirectory

Specifies the location of the built plugin file used for verification.

Type

DirectoryProperty

Default value

prepareSandbox.defaultDestinationDirectory/intellijPlatform.pluginConfiguration.name

verifyPlugin

Runs the IntelliJ Plugin Verifier CLI tool to check the binary compatibility with specified IDE builds.

Due to caching, the latest Plugin Verifier release version might not be picked up by Gradle immediately. In such cases, refresh dependencies manually.

See also:

ides

Specifies IntelliJ Platform IDEs used by the IntelliJ Plugin Verifier CLI tool for binary plugin verification. The list of IDEs is managed through the intellijPlatform.pluginVerification.ides extension.

Type

ConfigurableFileCollection

archiveFile

Specifies the input ZIP archive file of the plugin to verify. If this parameter is empty, the task will be skipped.

Type

RegularFileProperty

Default value

buildPlugin.archiveFile

externalPrefixes

Specifies a list of class prefixes from external libraries. The Plugin Verifier will not report No such class errors for classes in these packages.

Type

ListProperty<String>

Default value

intellijPlatform.pluginVerification.externalPrefixes

failureLevel

Specifies the verification level at which the task fails if any reported issue matches.

Type

ListProperty<FailureLevel>

Default value

intellijPlatform.pluginVerification.failureLevel

freeArgs

Represents a list of free arguments that are passed directly to the IntelliJ Plugin Verifier CLI tool. These arguments are used in conjunction with those provided by dedicated options.

See How to mute specific problems in pluginVerification? for sample usage.

Type

ListProperty<String>

Default value

intellijPlatform.pluginVerification.freeArgs

ignoredProblemsFile

Specifies a file that contains a list of problems that will be ignored in a report.

Type

RegularFileProperty

Default value

intellijPlatform.pluginVerification.ignoredProblemsFile

offline

Indicates whether the operation is executed in offline mode. This depends on the start parameters specified in Gradle.

Type

Property<Boolean>

Default value

StartParameter.isOffline

See also:

subsystemsToCheck

Specifies which subsystems of the IDE should be checked.

Type

Subsystems

Default value

intellijPlatform.pluginVerification.subsystemsToCheck

teamCityOutputFormat

Specifies whether to use the TeamCity-compatible output format. If set to true, outputs in a format compatible with TeamCity, directing the output to stdout.

Type

Property<Boolean>

Default value

intellijPlatform.pluginVerification.teamCityOutputFormat

verificationReportsDirectory

Specifies the path to the directory where verification reports will be saved.

Type

DirectoryProperty

Default value

intellijPlatform.pluginVerification.verificationReportsDirectory

verificationReportsFormats

Specifies the output formats of the verification reports.

Type

ListProperty<VerificationReportsFormats>

Default value

intellijPlatform.pluginVerification.verificationReportsFormats

Last modified: 16 August 2024