====== 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.