View Source

Note: This page has been migrated to [the Eclipse Hudson wiki|http://wiki.eclipse.org/Hudson-ci/Extend_Hudson]. 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|http://wiki.eclipse.org/Hudson-ci/writing-first-hudson-plugin]
* [Plugin Architecture|Architecture]
* [Plugin Directory Structure|http://wiki.hudson-ci.org/display/HUDSON/Plugin+structure]
* [Sample - Writing an SCM plugin|http://wiki.hudson-ci.org/display/HUDSON/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 |http://wiki.hudson-ci.org/display/HUDSON/UI+Integration+Test]
* [Understanding Stapler URL mapping rules|https://stapler.dev.java.net/reference.html]
* Tips
** [Debugging native Maven jobs]
** [Internationalization]
** [Choosing Hudson version to build against]
** [Java 5 Compatibility]
** [Bundling plugins with Hudson]

* [Hosting plugin|http://wiki.hudson-ci.org/display/HUDSON/Hosting+Hudson+Plugins]
* [Releasing Hudson Plugin|http://wiki.hudson-ci.org/display/HUDSON/Releasing+Hudson+Plugin]

h2. Additional references

* [Hudson Javadoc|http://hudson-ci.org/javadoc]
* Jelly taglib reference [core|http://commons.apache.org/jelly/tags.html] [define|http://commons.apache.org/jelly/libs/define/tags.html]

h1.