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)
See Distribution Size for important steps to optimize the plugin distribution file.
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.
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).