Jump to: navigation, search

Hudson-ci/Extend Hudson

This page is a stub, and in progress.

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
   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
       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
       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
   Writing UI integration tests for your plugin
   Understanding Stapler URL mapping rules
       Debugging native Maven jobs
       Choosing Hudson version to build against
       Java 5 Compatibility
       Bundling plugins with Hudson
   Hosting plugin
   Releasing Hudson Plugin

Additional references

   Hudson Javadoc
   Jelly taglib reference core define