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.