38 KiB
The Gradle IntelliJ Plugin is a plugin for the Gradle build system to help configuring your environment for building, testing, verifying, and publishing plugins for IntelliJ-based IDEs.
{type="note"}
This plugin allows you to build plugins for IntelliJ Platform using specified IntelliJ SDK and bundled or third-party plugins.
The plugin adds extra IntelliJ-specific dependencies, patches processResources
tasks to fill some tags (name, version) in plugin.xml with appropriate values, patches compile tasks to instrument code with nullability assertions and forms classes made with IntelliJ GUI Designer and provides some build steps which might be helpful while developing plugins for IntelliJ platform.
Usage
To enable this plugin in your Gradle-based project, add the following entry to the plugins
section:
plugins {
id("org.jetbrains.intellij") version "..."
}
plugins {
id "org.jetbrains.intellij" version "..."
}
When upgrading to 1.x
version, please make sure to follow migration guide to adjust your existing build script.
Gradle JVM must be set to
Java 11
(see Settings/Preferences | Build, Execution, Deployment | Build Tools | Gradle)
{type="tip"}
This project requires
Gradle 6.7
or newer, however it is recommended to use the latest Gradle available. Update it with:./gradlew wrapper --gradle-version=VERSION
See also: Gradle Installation guide. {type="tip"}
Snapshot Release
The Snapshot release is a pre-release version built nightly from the latest main branch – as it is built every day using the same version number, it's not recommended to use it in production.
For switching to the snapshot release, point Gradle to the dedicated snapshot repository by adding an entry to the Gradle settings file.
{type="note"}
build.gradle.kts
plugins {
id("org.jetbrains.intellij") version "..."
}
settings.gradle.kts
pluginManagement {
repositories {
maven("https://oss.sonatype.org/content/repositories/snapshots/")
gradlePluginPortal()
}
}
build.gradle
plugins {
id "org.jetbrains.intellij" version "..."
}
settings.gradle
pluginManagement {
repositories {
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
gradlePluginPortal()
}
}
IntelliJ Extension
After the Gradle IntelliJ Plugin is applied, the intellij
extension can be used to configure the plugin and common settings of the provided tasks.
It is mandatory to specify at least the intellij.version
property.
Example:
intellij {
version.set("2022.1.1")
type.set("IU")
plugins.set(listOf("com.jetbrains.php:221.5787.21"))
}
intellij {
version = "2022.1.1"
type = "IU"
plugins = ["com.jetbrains.php:221.5787.21"]
}
version
{id="intellij-extension-version"}
All available JetBrains IDEs versions can be found at IntelliJ Artifacts page.
The version of the IntelliJ Platform IDE that will be used to build the plugin. Please see Plugin Compatibility topic in SDK docs for more details.
Required
Type: String
Acceptable values:
- version number:
2022.1.1
orIC-2022.1.1
- build number:
221.5080.210
orIC-221.5080.210
- snapshot:
221-EAP-SNAPSHOT
orLATEST-EAP-SNAPSHOT
The version number format is the most common option for specifying the version of the IntelliJ Platform. Other formats should be used only when your plugin relies on specific parts of the targeted IDE or early-adopting EAP releases.
{type="tip"}
type
{id="intellij-extension-type"}
The type of the IntelliJ-based IDE distribution.
The type may also be specified as a prefix of the value for the intellij.version
property instead.
Type: String
Default value: IC
Acceptable values:
IC
- IntelliJ IDEA Community EditionIU
- IntelliJ IDEA Ultimate EditionCL
- CLionPY
- PyCharm Professional EditionPC
- PyCharm Community EditionRD
- RiderGO
- GoLandJPS
- JPS-onlyGW
- Gateway
pluginName
{id="intellij-extension-pluginname"}
The name of the generated ZIP archive distribution: /build/distributions/PluginName-1.0.0.zip
.
Type: String
Default value: ${project.name}
localPath
{id="intellij-extension-localpath"}
The path to the locally installed IDE distribution that should be used to build the plugin.
Using the intellij.localPath
allows to build the plugin using IDE that is not available in the IntelliJ Platform Artifacts Repositories.
Type: String
Default value: null
Samples:
C:\Users\user\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\211.7142.45
/Applications/Android Studio 4.2 Preview.app/Contents
/home/user/idea-IC-181.4445.78
intellij.version
andintellij.localPath
must not be specified at the same time.
{type="warning"}
localSourcesPath
{id="intellij-extension-localsourcespath"}
The path to local archive with IDE sources.
Used for resolving source files of the locally installed IDE distribution when intellij.localPath
is specified.
Type: String
Default value: null
plugins
{id="intellij-extension-plugins"}
The list of bundled IDE plugins and plugins from JetBrains Marketplace or configured intellij.pluginsRepositories
.
Please see Plugin Dependencies for more details.
Notes:
- For plugins from JetBrains Marketplace, use format
pluginId:version
. - For bundled plugins, version must be omitted: e.g.
org.intellij.groovy
. - For subprojects, use project reference
project(':subproject')
. - If you need to refer plugin's classes from your project, you also have to define a dependency in your plugin.xml file.
Type: List<Any>
Default value: []
Acceptable values:
org.plugin.id:version[@channel]
format,String
type:org.intellij.plugins.markdown:8.5.0
org.intellij.scala:2017.2.638@nightly
bundledPluginName
format,String
type:android
Groovy
project(...)
format,Project
type:project(":projectName")
project(":plugin-subproject")
updateSinceUntilBuild
{id="intellij-extension-updatesinceuntilbuild"}
Defines if the plugin.xml should be patched with the values of patchPluginXml.sinceBuild
and patchPluginXml.untilBuild
properties.
Type: Boolean
Default value: true
sameSinceUntilBuild
{id="intellij-extension-samesinceuntilbuild"}
Patches plugin.xml with the patchPluginXml.untilBuild
with the value of patchPluginXml.sinceBuild
used with *
wildcard, like sinceBuild.*
, e.g., 221.*
.
Notes:
- Useful for building plugins against EAP IDE builds.
- If
patchPluginXml.untilBuild
has a value set, thenintellij.sameSinceUntilBuild
is ignored.
Type: Boolean
Default value: false
instrumentCode
{id="intellij-extension-instrumentcode"}
Instrument Java classes with nullability assertions and compile forms created by IntelliJ GUI Designer.
Type: Boolean
Default value: true
sandboxDir
{id="intellij-extension-sandboxdir"}
The path of sandbox directory that is used for running IDE with developed plugin.
Type: String
Default value: ${project.buildDir}/idea-sandbox
intellijRepository
{id="intellij-extension-intellijrepository"}
The IntelliJ-based IDE distributions repository URL.
Type: String
Default value: https://cache-redirector.jetbrains.com/www.jetbrains.com/intellij-repository
pluginsRepositories
{id="intellij-extension-pluginsrepositories"}
Configures repositories for downloading plugin dependencies.
Type: PluginsRespositoryConfiguration
Default value: pluginsRepositories { marketplace() }
Acceptable values:
marketplace()
- use Maven repository with plugins listed in JetBrains Marketplacemaven(repositoryUrl)
- use custom Maven repository with pluginsmaven { repositoryUrl }
- use custom Maven repository with plugins where you can configure additional parameters (credentials, authentication and etc.)custom(pluginsXmlUrl)
- use custom plugin repository
jreRepository
{id="intellij-extension-jrerepository"}
URL of repository for downloading JetBrains Runtime.
Type: String
Default value: null
ideaDependencyCachePath
{id="intellij-extension-ideadependencycachepath"}
Path to the directory where IDE dependency cache is stored. If not set, the dependency will be extracted next to the downloaded ZIP archive in Gradle cache directory.
Type: String
Default value: null
downloadSources
{id="intellij-extension-downloadsources"}
Download IntelliJ Platform sources.
It is enabled by default if the CI
environment variable is not set – which is present on Continuous Integration environments, like GitHub Actions, TeamCity, and others.
Type: Boolean
Default value: !System.getenv().containsKey("CI")
configureDefaultDependencies
{id="intellij-extension-configuredefaultdependencies"}
If enabled, automatically configures the default IntelliJ Platform dependencies in the current project.
Otherwise, the DependenciesUtils.intellij
, DependenciesUtils.intellijPlugin
, and DependenciesUtils.intellijPlugins
functions could be used for an explicit configuration.
Type: Boolean
Default value: true
extraDependencies
{id="intellij-extension-extradependencies"}
Configure extra dependency artifacts from the IntelliJ repository.
The dependencies on them could be configured only explicitly using the DependenciesUtils.intellijExtra
function in the dependencies
block.
Type: List<String>
Default value: []
buildPlugin Task
Assembles plugin and prepares ZIP archive for deployment.
archiveBaseName
{id="buildplugin-task-archivebasename"}
The base name of the ZIP archive.
This task is preconfigured automatically and takes the output artifacts of prepareSandbox
and jarSearchableOptions
tasks as an input.
Type: String
Default value: ${prepareSandboxTask.pluginName}
buildSearchableOptions Task
Builds an 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.
Note, that this is a runIde
-based task with predefined arguments and all properties of the runIde
task are also applied to buildSearchableOptions
tasks.
If your plugin doesn't implement custom settings, you may disable it.
{type="tip"}
outputDir
{id="buildsearchableoptions-task-outputdir"}
Type: File
Default value: build/searchableOptions
downloadRobotServerPlugin Task
Downloads robot-server
plugin.
The robot-server
plugin is required for running the UI tests using the runIdeForUiTests
task.
version
{id="downloadrobotserverplugin-task-version"}
The version of the Robot Server Plugin to download.
Type: String
Default value: LATEST
pluginArchive
{id="downloadrobotserverplugin-task-pluginarchive"}
The archive with the Robot Server Plugin, downloaded by default to the Gradle cache.
Type: File
Default value: Gradle cache
outputDir
{id="downloadrobotserverplugin-task-outputdir"}
Location of the extracted archive.
Type: File
Default value: build/robotServerPlugin
instrumentCode Task
The following attributes help you to tune instrumenting behaviour in instrumentCode { ... }
block.
compilerVersion
{id="instrumentcode-task-compilerversion"}
A version of instrumenting compiler. It's used in cases when targeting non-IntelliJ IDEA IDEs (e.g. CLion or Rider).
Type: String
Default value: Build number of the IDE dependency
jarSearchableOptions Task
Creates a JAR file with searchable options to be distributed with the plugin.
outputDir
{id="jarsearchableoptions-task-outputdir"}
The output directory where the JAR file will be created.
Type: String
Default value: build/searchableOptions
pluginName
{id="jarsearchableoptions-task-pluginname"}
The name of the plugin.
Type: String
Default value: intellij.pluginName
sandboxDir
{id="jarsearchableoptions-task-sandboxdir"}
The sandbox output directory.
Type: String
Default value: prepareSandbox.outputDir
listProductsReleases Task
List all available IntelliJ-based IDE releases with their updates.
The result list is used for testing the plugin with Plugin Verifier using the runPluginVerifier
task.
Plugin Verifier requires a list of the IDEs that will be used for verifying your plugin build against. The availability of the releases may change in time, i.e., due to security issues in one version – which will be later removed and replaced with an updated IDE release.
With the listProductsReleases
task, it is possible to list the currently available IDEs matching given conditions, like platform types, since/until release versions.
Such a list is fetched from the remote updates file: https://www.jetbrains.com/updates/updates.xml
, parsed and filtered considering the specified listProductsReleases.types
, listProductsReleases.sinceVersion
, listProductsReleases.untilVersion
(or listProductsReleases.sinceBuild
, listProductsReleases.untilBuild
) properties.
The result list is stored within the listProductsReleases.outputFile
, which is used as a source for the Plugin Verifier if the runPluginVerifier
task has no runPluginVerifier.ideVersions
property specified, the output of the listProductsReleases
task is used.
updatesFile
{id="listproductsreleases-task-updatesfile"}
Path to the products releases update file. By default, falls back to the Maven cache.
Type: List<String>
Default value: Maven cache
types
{id="listproductsreleases-task-types"}
List of types of IDEs that will be listed in results.
Type: String
Default value: intellij.type
sinceVersion
{id="listproductsreleases-task-sinceversion"}
Lower boundary of the listed results in product marketing version format, like 2020.2.1
.
Takes precedence over listProductsReleases.sinceBuild
property.
Type: String
Default value: intellij.version
untilVersion
{id="listproductsreleases-task-untilversion"}
Upper boundary of the listed results in product marketing version format, like 2020.2.1
.
Takes precedence over listProductsReleases.untilBuild
property.
Type: String
Default value: null
sinceBuild
{id="listproductsreleases-task-sincebuild"}
Lower boundary of the listed results in build number format, like 192
.
Type: String
Default value: intellij.version
untilBuild
{id="listproductsreleases-task-untilbuild"}
Upper boundary of the listed results in build number format, like 192
.
Type: String
Default value: null
releaseChannels
{id="listproductsreleases-task-releasechannels"}
Release channels that product updates will be filtered with.
Type: Channel
Default value: EnumSet.allOf(ListProductsReleasesTask.Channel)
outputFile
{id="listproductsreleases-task-outputfile"}
Path to the file, where the output list will be stored.
Type: File
Default value: File("${project.buildDir}/listProductsReleases.txt")
androidStudioUpdatePath
{id="listproductsreleases-task-androidstudioupdatepath"}
For Android Studio releases, a separated storage for the updates is used.
Type: String
Default value: https://raw.githubusercontent.com/JetBrains/intellij-sdk-docs/main/topics/_generated/android_studio_releases.xml
patchPluginXml Task
Patches plugin.xml files with values provided to the task.
To maintain and generate an up-to-date changelog, try using Gradle Changelog Plugin.
{type="tip"}
destinationDir
{id="patchpluginxml-task-destinationdir"}
The directory where the patched plugin.xml will be written.
Type: String
Default value: ${project.buildDir}/patchedPluginXmlFiles
pluginXmlFiles
{id="patchpluginxml-task-pluginxmlfiles"}
The list of plugin.xml files to patch.
Type: List<File>
Default value: auto-discovered from the project
pluginDescription
{id="patchpluginxml-task-plugindescription"}
The description of the plugin – will be set to the <description>
tag.
Type: String
Default value: null
sinceBuild
{id="patchpluginxml-task-sincebuild"}
The lower bound of the version range to be patched – will be set for the since-build
attribute of the <idea-version>
tag.
Type: String
Default value: intellij.version
in Branch.Build.Fix
format
untilBuild
{id="patchpluginxml-task-untilbuild"}
The upper bound of the version range to be patched – will be set for the until-build
attribute of the <idea-version>
tag.
Type: String
Default value: intellij.version
in Branch.Build.*
format
version
{id="patchpluginxml-task-version"}
The version of the plugin – will be set for the <version>
tag.
Type: String
Default value: ${project.version}
changeNotes
{id="patchpluginxml-task-changenotes"}
The change notes of the plugin – will be set for the <change-notes>
tag.
Type: String
Default value: null
pluginId
{id="patchpluginxml-task-pluginid"}
The ID of the plugin – will be set for the <id>
tag.
Type: String
Default value: null
prepareSandbox Task
Prepares sandbox directory with installed plugin and its dependencies.
pluginName
{id="preparesandbox-task-pluginname"}
The name of the plugin.
Type: String
Default value: intellij.pluginName
configDir
{id="preparesandbox-task-configdir"}
The directory with the plugin configuration.
Type: String
Default value: ${intellij.pluginName}/config
pluginJar
{id="preparesandbox-task-pluginjar"}
The input plugin JAR file used to prepare the sandbox.
Type: File
Default value: jar
task output
librariesToIgnore
{id="preparesandbox-task-librariestoignore"}
Libraries that will be ignored when preparing the sandbox.
By default, excludes all libraries that are a part of the setupDependenciesTask.idea
dependency.
Type: List<File>
Default value: org.jetbrains.intellij.tasks.SetupDependenciesTask.idea.get().jarFiles
pluginDependencies
{id="preparesandbox-task-plugindependencies"}
List of dependencies of the current plugin.
Type: List<PluginDependency>
Default value: org.jetbrains.intellij.IntelliJPluginExtension.getPluginDependenciesList
prepareTestingSandbox Task
Prepares sandbox directory with installed plugin and its dependencies for testing purposes.
See prepareSandbox
Task.
prepareUiTestingSandbox Task
Prepares sandbox directory with installed plugin and its dependencies for UI testing purposes.
See prepareSandbox
Task.
publishPlugin Task
Publishes plugin to the remote JetBrains Marketplace repository.
The following attributes are a part of the Publishing DSL publishPlugin { ... }
in which allows Gradle to upload plugin to JetBrains Marketplace.
Note that you need to upload the plugin to the repository at least once manually (to specify options like the license, repository URL etc.) before uploads through Gradle can be used.
See the instruction on how to generate authentication token.
See Publishing Plugins with Gradle tutorial for step-by-step instructions.
token
{id="publishplugin-task-token"}
Authentication token.
Required
Type: String
Default value: null
channels
{id="publishplugin-task-channels"}
List of channel names to upload plugin to.
Type: List<String>
Default value: ["default"]
host
{id="publishplugin-task-host"}
URL host of a plugin repository.
Type: String
Default value: JetBrains Marketplace
distributionFile
{id="publishplugin-task-distributionfile"}
ZIP file of plugin to upload.
Type: File
Default value: output of the buildPlugin
task
toolboxEnterprise
{id="publishplugin-task-toolboxenterprise"}
Specifies if the Toolbox Enterprise plugin repository service should be used. This feature is still in the incubating phase and is not yet available for public use.
Type: Boolean
Default value: false
runIde Task
Runs the IDE instance with the developed plugin installed.
RunIde
tasks extend the JavaExec
Gradle task – all properties available in the JavaExec
as well as the following ones can be used to configure the runIde
taks.
ideDir
{id="runide-task-idedir"}
The IDEA dependency sources path.
Configured automatically with the setupDependencies.idea
dependency.
Type: File
Default value: setupDependencies.idea
jbrVersion
{id="runide-task-jbrversion"}
Custom JBR version to use for running the IDE.
Type: String
Default value: null
Accepted values:
8u112b752.4
8u202b1483.24
11_0_2b159
For more information about JBR versions and variants, see Using a JetBrains Runtime for the Development Instance.
{type="note"}
jbrVariant
{id="runide-task-jbrvariant"}
JetBrains Runtime variant to use when running the IDE with the plugin.
Type: String
Default value: null
pluginsDir
{id="runide-task-pluginsdir"}
Path to the plugins
directory within the sandbox prepared with the prepareSandbox
task.
Provided to the idea.plugins.path
system property.
Type: Directory
Default value: prepareSandbox.destinationDir
autoReloadPlugins
{id="runide-task-autoreloadplugins"}
Enables auto-reload of dynamic plugins. Dynamic plugins will be reloaded automatically when their JARs are modified. This allows a much faster development cycle by avoiding a full restart of the development instance after code changes. Enabled by default in 2020.2 and higher.
See Enabling Auto-Reload for more details.
Type: Boolean
Default value: true
runIdeForUiTests Task
Runs the IDE instance with the developed plugin and robot-server installed and ready for UI testing.
See intellij-ui-test-robot project.
See runIde
task for more details.
runIdePerformanceTest Task
Runs performance tests on the IDE with the developed plugin installed.
RunIdePerformanceTest
task extends the RunIdeBase
task, all configuration attributes of JavaExec
and RunIde
task can be used in RunIdePerformanceTest
as well.
See runIde
task for more details.
Currently, the task is under adaptation, more documentation will be added in the future.
testDataDir
{id="runideperformancetest-task-testdatadir"}
Path to directory with test projects and .ijperf
files.
Type: String
Default value: null
artifactsDir
{id="runideperformancetest-task-artifactsdir"}
Path to directory where performance test artifacts (IDE logs, snapshots, screenshots, etc.) will be stored. If the directory doesn't exist, it will be created.
Type: String
Default value: null
profilerName
{id="runideperformancetest-task-profilername"}
Name of the profiler which will be used during execution.
Type: ProfilerName
Default value: ProfilerName.ASYNC
Acceptable values:
ProfilerName.ASYNC
ProfilerName.YOURKIT
runPluginVerifier Task
Runs the IntelliJ Plugin Verifier tool to check the binary compatibility with specified IDE builds.
Plugin Verifier DSL runPluginVerifier { ... }
allows to define the list of IDEs used for the verification, as well as explicit tool version and any of the available options by proxifying them to the Verifier CLI.
For more details, examples or issues reporting, go to the IntelliJ Plugin Verifier repository.
{type="tip"}
To run Plugin Verifier in
-offline
mode, set the Gradleoffline
start parameter.
{type="tip"}
ideVersions
{id="runpluginverifier-task-ideversions"}
IDEs to check, in intellij.version
format, i.e.: ["IC-2019.3.5", "PS-2019.3.2"]
.
Check the available build versions on IntelliJ Platform Builds list.
Type: List<String>
Default value: output of the listProductsReleases
task
verifierVersion
{id="runpluginverifier-task-verifierversion"}
IntelliJ Plugin Verifier version, by default uses the latest available. Do not change unless absolutely required.
Type: String
Default value: latest
verifierPath
{id="runpluginverifier-task-verifierpath"}
IntelliJ Plugin Verifier local path to the pre-downloaded JAR file.
If set, runPluginVerifier.verifierVersion
is ignored.
Type: String
Default value: path to the JAR file resolved using the runPluginVerifier.verifierVersion
property
localPaths
{id="runpluginverifier-task-localpaths"}
A list of the paths to locally installed IDE distributions that should be used for verification in addition to those specified in runPluginVerifier.ideVersions
.
Type: List<File>
Default value: []
distributionFile
{id="runpluginverifier-task-distributionfile"}
ZIP file of the plugin to verify. If empty, the task will be skipped.
Type: File
Default value: output of the buildPlugin
task
failureLevel
{id="runpluginverifier-task-failurelevel"}
Defines the verification level at which task should fail if any reported issue will match.
Can be set as FailureLevel
enum or EnumSet<FailureLevel>
.
Type: FailureLevel
Default value: FailureLevel.COMPATIBILITY_PROBLEMS
Accepted values:
FailureLevel.COMPATIBILITY_WARNINGS
- Compatibility warningsFailureLevel.COMPATIBILITY_PROBLEMS
- Compatibility problemsFailureLevel.DEPRECATED_API_USAGES
- Deprecated API usagesFailureLevel.EXPERIMENTAL_API_USAGES
- Experimental API usagesFailureLevel.INTERNAL_API_USAGES
- Internal API usagesFailureLevel.OVERRIDE_ONLY_API_USAGES
- Override-only API usagesFailureLevel.NON_EXTENDABLE_API_USAGES
- Non-extendable API usagesFailureLevel.PLUGIN_STRUCTURE_WARNINGS
- Plugin structure warningsFailureLevel.MISSING_DEPENDENCIES
- Missing dependenciesFailureLevel.INVALID_PLUGIN
- The following files specified for the verification are not valid pluginsFailureLevel.NOT_DYNAMIC
- Plugin cannot be loaded/unloaded without IDE restartFailureLevel.ALL
- All of aboveFailureLevel.NONE
- None of above
verificationReportsDir
{id="runpluginverifier-task-verificationreportsdir"}
The path to directory where verification reports will be saved.
Type: String
Default value: ${project.buildDir}/reports/pluginVerifier
downloadDir
{id="runpluginverifier-task-downloaddir"}
The path to directory where IDEs used for the verification will be downloaded.
Type: String
Default value: System.getProperty("plugin.verifier.home.dir")/ides
or System.getProperty("user.home")/.pluginVerifier/ides
or system temporary directory.
jbrVersion
{id="runpluginverifier-task-jbrversion"}
Custom JBR version to use for running the IDE.
Type: String
Default value: null
Accepted values:
8u112b752.4
8u202b1483.24
11_0_2b159
For more information about JBR versions and variants, see Using a JetBrains Runtime for the Development Instance.
{type="note"}
jbrVariant
{id="runpluginverifier-task-jbrvariant"}
JetBrains Runtime variant to use when running the IDE with the plugin.
Type: String
Default value: null
runtimeDir
{id="runpluginverifier-task-runtimedir"}
The path to directory containing JVM runtime, overrides runPluginVerifier.jbrVersion
.
Type: String
Default value: null
externalPrefixes
{id="runpluginverifier-task-externalprefixes"}
The list of classes prefixes from the external libraries.
The Plugin Verifier will not report No such class
for classes of these packages.
Type: List<String>
Default value: []
teamCityOutputFormat
{id="runpluginverifier-task-teamcityoutputformat"}
A flag that controls the output format - if set to true
, the TeamCity Tests Format – the TeamCity compatible output will be returned to stdout.
Type: Boolean
Default value: false
subsystemsToCheck
{id="runpluginverifier-task-subsystemstocheck"}
Specifies which subsystems of IDE should be checked.
Type: String
Default value: all
Acceptable values:
all
android-only
without-android
setupDependencies Task
Setups required dependencies for building and running project.
idea
{id="setupdependencies-task-idea"}
This task exposes the setupDependencies.idea
property which contains a reference to the resolved IDE dependency used for building the plugin.
This property can be referred in Gradle configuration to access IDE dependency classpath.
signPlugin Task
Signs the ZIP archive with the provided key using 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 signPlugin { ... }
Plugin Signing DSL.
As soon as signPlugin.privateKey
(or signPlugin.privateKeyFile
) and signPlugin.certificateChain
(or signPlugin.certificateChainFile
) properties are specified, task will be executed automatically right before the publishPlugin
task.
For more details, see Plugin Signing article.
certificateChain
{id="signplugin-task-certificatechain"}
A string containing X509 certificates.
The first certificate from the chain will be used as a certificate authority (CA).
Refers to cert
CLI option.
Type: String
Default value: null
certificateChainFile
{id="signplugin-task-certificatechainfile"}
A file containing X509 certificates.
The first certificate from the chain will be used as a certificate authority (CA).
Refers to cert-file
CLI option.
Type: File
Default value: null
privateKey
{id="signplugin-task-privatekey"}
Encoded private key in PEM format.
Refers to key
CLI option.
Type: String
Default value: null
privateKeyFile
{id="signplugin-task-privatekeyfile"}
A file with encoded private key in PEM format.
Refers to key-file
CLI option.
Type: File
Default value: null
password
{id="signplugin-task-password"}
Password required to decrypt the private key.
Refers to key-pass
CLI option.
Type: String
Default value: null
cliVersion
{id="signplugin-task-cliversion"}
Returns the version of JetBrains Marketplace ZIP Signer CLI that will be used.
Type: String
Default value: LATEST
cliPath
{id="signplugin-task-clipath"}
Path to JetBrains Marketplace ZIP Signer CLI file.
Takes precedence over signPlugin.cliVersion
.
Type: String
Default value: null
keyStore
{id="signplugin-task-keystore"}
KeyStore file path.
Refers to ks
CLI option.
Type: String
Default value: null
keyStorePassword
{id="signplugin-task-keystorepassword"}
KeyStore password.
Type: String
Default value: null
keyStoreKeyAlias
{id="signplugin-task-keystorekeyalias"}
KeyStore key alias.
Refers to ks-key-alias
CLI option.
Type: String
Default value: null
keyStoreType
{id="signplugin-task-keystoretype"}
KeyStore type.
Type: String
Default value: null
keyStoreProviderName
{id="signplugin-task-keystoreprovidername"}
JCA KeyStore Provider name.
Refers to ks-provider-name
CLI option.
Type: String
Default value: null
inputArchiveFile
{id="signplugin-task-inputarchivefile"}
Input, unsigned ZIP archive file.
Refers to in
CLI option.
Provided by the buildPlugin
task.
outputArchiveFile
{id="signplugin-task-outputarchivefile"}
Output, signed ZIP archive file.
Refers to out
CLI option.
Predefined with the name of the ZIP archive file with -signed
name suffix attached.
Type: File
verifyPlugin Task
Validates completeness and contents of plugin.xml descriptors as well as plugin archive structure.
ignoreFailures
{id="verifyplugin-task-ignorefailures"}
Specifies whether the build should fail when the verifications performed by this task fail.
Type: Boolean
Default value: false
ignoreWarnings
{id="verifyplugin-task-ignorewarnings"}
Specifies whether the build should fail when the verifications performed by this task emit warnings.
Type: Boolean
Default value: true
pluginDir
{id="verifyplugin-task-plugindir"}
The location of the built plugin file which will be used for verification.
Type: File
Default value: ${prepareSandboxTask.destinationDir}/${prepareSandboxTask.pluginName}
Build Features
With the Gradle IntelliJ Plugin releases, new features are introduced that require additional research, collecting more feedback from developers, or should be enabled or disabled under particular conditions. Build Features are an implementation of the feature flags concept and let you control some behaviors of the Gradle IntelliJ Plugin. To enable or disable a particular feature, add the Project property to the gradle.properties file, like:
org.jetbrains.intellij.buildFeature.buildFeatureName=false
selfUpdateCheck
{id="build-features-selfupdatecheck"}
Check if the currently used Gradle IntelliJ Plugin is outdated.
Default value: true