Skip to content

creating plugins

Tadeas Palusga edited this page Feb 19, 2015 · 8 revisions

TODO..

Plugin is a simple zip file with '*.plugin' extension with the following structure:

sample-plugin.plugin                                               (1)
|    sample-plugin-1.2.3.jar                                       (2)
|    plugin-descriptor.json                                        (3)
└─── lib                                                           (4)
     └─── com
          └─── example
               └─── sampledependency
                    ├─── sampledependency-1
                    |    └─── 1.2.3
                    |         |    sampledependency-1-1.2.3.jar    (5)
                    |
                    └─── sampledependency-2
                         └─── 1.2.3
                              |    sampledependency-2-1.2.3.jar

(1) plugin file itself ... (2) plugin artifact named as artifactId-version.jar ... (3) plugin descriptor file with structure described below in this document ... (4) all dependencies are placed in lib directory ... (5) one of the dependencies

{
  "name" : "Sample plugin",
  "description" : "This is just description of sample plugin",
  "groupId" : "com.example.sampleplugin",
  "artifactId" : "sample-plugin",
  "version" : "1.2.3",
  "activator" : "com.example.sampleplugin.PluginActivator",
  "dependencies" : [
    {
      "groupId" : "com.example.sampledependency",
      "artifactId" : "sampledependency-1",
      "version" : "1.2.3",
      "scope" : "REQUIRED"
    },
    {
      "groupId" : "com.example.sampledependency",
      "artifactId" : "sampledependency-2",
      "version" : "1.2.3",
      "scope" : "OPTIONAL"
    }
  ],
  /* Plugin dependencies are not supported yet !!! */
  /**/ "pluginDependencies" : [
  /**/     {
  /**/       "groupId" : "com.example.sampleplugin",
  /**/       "artifactId" : "sample-plugin-2",
  /**/       "version" : "1.2.3",
  /**/       "scope" : "REQUIRED"
  /**/     },
  /**/     {
  /**/       "groupId" : "com.example.sampleplugin",
  /**/       "artifactId" : "sample-plugin-3",
  /**/       "version" : "1.2.3",
  /**/       "scope" : "OPTIONAL"
  /**/     }
  /**/   ]
  /**/ 
}

Although plugin can be created by hand, there is much easier way using provided Maven plugin.

Clone this wiki locally