====== Structure ======
Any repository with a ''plugin.xml'' and ''plugin.properties'' files is considered as a plugin by GroIMP.
To be properly loadable though, the ''plugin.xml'' needs to include:
where ''plugin id'' and ''version'' need to be filled with the plugin information.
===== =====
A plugin has to have a special directory layout. The layout depends on how you run GroIMP. There are currently two layout:
- As compiled plugin.
- As compiled classes.
In the compiled version of GroIMP (the one deployed and installed with the executable files) the plugins are loaded as:
* MyPlugin
* MyPlugin.jar
* plugin.properties
* plugin.xml
* doc/
* dependencies.jar ...
In the development version of GroIMP (usually what you get from the source code, and using the --project-tree argument) the plugins are loaded as:
* MyPlugin
* target
* classes
* plugin.properties
* plugin.xml
*
*
* lib
*
**Important:** Note that the files //plugin.xml//, and //plugin.properties// are required.
By default GroIMP load plugins from its root/plugins directory. During development, usually the --project-tree argument is used, making GroIMP load plugin from the same directory as the needed GroIMP plugins and projects (e.g., Graph, XL-Core, IMP-3D, ...). It is also possible to set an additional directory where GroIMP look for plugins in the GroIMP preferences. Or by passing the command line argument -p when starting groimp.