Add runIde.jvmArgs workaround.

This commit is contained in:
JohnHake 2020-01-31 11:40:11 -08:00
parent e1cac2b412
commit 33a23b2fae

View File

@ -9,18 +9,26 @@ Plugin projects targeting DataGrip can be developed using IntelliJ IDEA with the
## Configuring Plugin Projects Targeting DataGrip
The configuration of DataGrip plugin projects follows the methods described in [Configuring Plugin Projects using the IntelliJ IDEA Product Attribute](dev_alternate_products.md#configuring-plugin-projects-using-the-intellij-idea-product-attribute), and [Configuring the plugin.xml File](dev_alternate_products.md#configuring-pluginxml).
> **Note** DataGrip plugin development may require setting an additional Gradle attribute: `runIde.jvmArgs`. See table below.
The table below summarizes the `gradle-intellij-plugin` attributes to set in the `build.gradle` file:
| `gradle-intellij-plugin` Attribute | Attribute Value |
|-----------|-------|
| [`intellij.type`](https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties) | `IU` for IntelliJ IDEA Ultimate.<br>(`IC` is incompatible with the required `DatabaseTools` plugin.) |
| [`intellij.version`](https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties) | `2019.3` Set to the same version as the DataGrip target version. |
| [`intellij.plugins`](https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties) | Dependency on the bundled `DatabaseTools` plugin. |
| [`intellij.version`](https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties) | `2019.3` Set to the same version as the DataGrip target version, as set by `runIde.ideaDirectory` |
| [`intellij.plugins`](https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#intellij-platform-properties) | `plugins 'DatabaseTools'` Dependency on the bundled `DatabaseTools` plugin. |
| [`runIde.ideaDirectory`](https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#running-dsl) | Path to locally installed target version of DataGrip. For example, for macOS:<br>`/Users/<user name>/Library/Application Support/JetBrains/Toolbox/apps/datagrip/ch-0/193.5233.139/DataGrip.app/Contents` |
| [`runIde.jvmArgs`](https://github.com/JetBrains/gradle-intellij-plugin/blob/master/README.md#running-dsl) | `jvmArgs '-Didea.platform.prefix=DataGrip'`<br>Only required for `gradle-intellij-plugin` v0.4.16 or earlier. |
The additional attribute `runIde.jvmArgs` is required for versions of the `gradle-intellij-plugin` 0.4.16 and earlier.
This attribute declares that Gradle should use the DataGrip platform to run/debug plugins in a development instance.
It is not required for building plugins and manually installing them in DataGrip.
Benign, but redundant attribute if used for later versions of the `gradle-intellj-plugin`.
The dependency on the DataGrip APIs must be declared in the `plugin.xml` file.
As described in [Modules Specific to Functionality](/basics/getting_started/plugin_compatibility.md#modules-specific-to-functionality) table, the `<depends>` tags must declare `com.intellij.database`.
**Note** that for DataGrip the plugin.xml file must also declare a dependency on `com.intellij.modules.platform` because `com.intellij.database` is not recognized as a module.
**Note** that DataGrip plugins must also declare a dependency on `com.intellij.modules.platform` because `com.intellij.database` is not recognized as a module.
Consequently, without the `com.intellij.modules.platform` declaration the plugin is assumed to be a [legacy plugin](/basics/getting_started/plugin_compatibility.md#declaring-plugin-dependencies) and will not load in DataGrip.
## Available DataGrip APIs