Packaging plugins
However you get your plugin to its finished state, you deploy it as a JAR file.
When you deploy, the application expects the contents of your JAR file to be in a particular hierarchy. Here's a snapshot of how the contents might look:

Artifact | Description |
---|---|
classes directory | Required. Java classes for the plugin |
META-INF directory | Directory for standard JAR descriptor file |
resources directory | Plugin user interface files, such as FTL files and CSS files |
scripts directory | JavaScript or Perl or other scripts |
README.html, changelog.html, and license.html | Information about how the plugin should be deployed, configured and used. As you upgrade the plugin, you can also include information about changes you make from version to version |
logo_small.png, logo_large.png | Images to represent the plugin (logo_small must be 16x16
px). |
plugin.xml | Required. Configuration for the plugin, it lists components included in the plugin, along with components added to the UI. For more information, see Plugin XML reference and UI components XML reference. |
schema.xml | If your plugin creates tables in the database, define them here as SQLGen XML. Tables that you define in this file will be automatically created when the plugin is deployed. |
spring.xml | Configuration of created or overrided Spring beans. This element is required as of version 5.0.1. For an example in the context of security, see Authentication and authorization. |
struts.xml | Struts configuration file that maps actions to action classes and results to FTL files. |