[//]: # (title: Plugin Content) Plugin distribution will be built using [Gradle](tools_gradle_intellij_plugin.md#tasks-buildplugin) or [Plugin DevKit](deploying_theme.md). The plugin .jar file must contain: - the configuration file (META-INF/plugin.xml) ([Plugin Configuration File](plugin_configuration_file.md)) - the classes that implement the plugin functionality - recommended: plugin logo file(s) (META-INF/pluginIcon*.svg) ([Plugin Logo](plugin_icon_file.md)) > Targeting a plugin distribution to a specific OS is not possible ([issue](https://youtrack.jetbrains.com/issue/MP-1896)). ### Plugin Without Dependencies A plugin consisting of a single .jar file is placed in the /plugins directory. ```text .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](plugin_class_loaders.md)). > Do not repackage libraries into the main plugin archive (sample.jar in the sample below). > Otherwise, [Plugin Verifier](verifying_plugin_compatibility.md) will yield false positives for unresolved classes and methods. > {style="warning"} ```text .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 ```