View Source

Note: This page has been migrated to [the Eclipse Hudson wiki|]. Please update your bookmarks.

h1. Developing Plugins

Hudson supports plugins, which allow Hudson to be extended to meet specific needs of individual projects. Read on to learn how to write a plugin.
* [Write your first Hudson Plugin|]
* [Plugin Architecture|Architecture]
* [Plugin Directory Structure|]
* [Sample - Writing an SCM plugin|]
* [Extension points]
** [Defining a new extension point]
* [Dependencies among plugins]
* Writing Plugin code
** [Using IntelliJ IDEA plugin|IntelliJ IDEA plugin for Stapler]
** [Structured form submission]
** [Making your plugin behave in distributed Hudson]
** [Making your plugin behave in secured Hudson]
** [Marking a new plugin version as incompatible with older versions]
** [Hints for plugin-development newbies|HUDSON:Hints for plugin-development newbies|Hints for plugin-development newbies]
** [Exposing data to the remote API]
** [Writing CLI commands]
** [Participating to the initialization]
* Writing Plugin UI using Jelly Framework
** [Basic guide to Jelly usage in Hudson]
** [Understanding Jelly Tags]
** [Figuring out URL binding of Stapler]
** [Writing Jelly views with IDE assistance]
** [Adding tooltips]
** [Writing a foldable section controlled by a checkbox]
** [Jelly form controls]
** [Jelly and XSS prevention]
** [Unique IDs for Repeatable Content]
* [Writing unit tests for your plugin|Unit Test]
* [Writing UI integration tests for your plugin |]
* [Understanding Stapler URL mapping rules|]
* Tips
** [Debugging native Maven jobs]
** [Internationalization]
** [Choosing Hudson version to build against]
** [Java 5 Compatibility]
** [Bundling plugins with Hudson]

* [Hosting plugin|]
* [Releasing Hudson Plugin|]

h2. Additional references

* [Hudson Javadoc|]
* Jelly taglib reference [core|] [define|]