2022-11-24 15:11:20 +01:00

2.3 KiB

Plugin distribution will be built using Gradle or Plugin DevKit.

The plugin .jar file must contain:

  • the configuration file (META-INF/plugin.xml) (Plugin Configuration File)
  • the classes that implement the plugin functionality
  • recommended: plugin logo file(s) (META-INF/pluginIcon*.svg) (Plugin Logo)

Targeting a plugin distribution to a specific OS is not possible (issue).

Plugin Without Dependencies

A plugin consisting of a single .jar file is placed in the /plugins directory.

.IntelliJIDEAx0/
└── plugins
    └── sample.jar
        ├── com/company/sample/SamplePluginService.class
        │   ...
        │   ...
        └── META-INF
            ├── plugin.xml
            ├── pluginIcon.svg
            └── pluginIcon_dark.svg

Plugin With Dependencies

The plugin .jar file is placed in the /lib folder under the plugin's "root" folder, together with all required bundled libraries.

All jars from the /lib folder are automatically added to the classpath (see also Plugin Class Loaders).

Do not repackage libraries into the main plugin archive (sample.jar in the sample below). Otherwise, Plugin Verifier will yield false positives for unresolved classes and methods.

{style="warning"}

   .IntelliJIDEAx0/
   └── plugins
       └── sample
           └── lib
               ├── lib_foo.jar
               ├── lib_bar.jar
               │   ...
               │   ...
               └── sample.jar
                   ├── com/company/sample/SamplePluginService.class
                   │   ...
                   │   ...
                   └── META-INF
                       ├── plugin.xml
                       ├── pluginIcon.svg
                       └── pluginIcon_dark.svg