| Kohsuke (aka Mr. Hudson) and I attended The Server Side Java Symposium, Las Vegas in Mar 2008. In one of the evenings we spent togehter, I decided to pick Kohsuke's brain on top 10 features of Hudson. My notes were lost but luckily I found them so this article is slightly dated but most of the content is still very much valid. Newer features have been added since then anyway. |
Here you go ...
- Ease of
installation & use - Hudson is downloaded as a single
WAR and run just using "java -jar hudson.war" - no additional
configuration or container. It can also be started by clicking on this link.
There has been emphasis on a single web app with no need to run a
Continuous Integration (CI) server or client. If started using "java
-jar hudson.war", then the default page looks like:
More details about ease of installation & use are available in Hudson
Docs. - Fairly
extensive ecosystem of plugins
- You can easily write plugins to support tools/processes in your team.
And after you contribute, they can be used by others as well. - Update
Center - for finding and installing plugins - Source Code Control Plugins: Visual
Source Safe, Git,
Perforce
and many
others. - Most of the plugins are small and can be created in spare
time. - Maven
support for generating plugin templates. Read more about
developing plugins in Extend
Hudson. - Distributed
build support - This lets you use those empty sitting
machines in a master/slave configuration and churn out the builds.
Hudson "baby sits" the slave and performs some non-trivial work to
monitor it such as clock synchronization, disk space monitoring and
restarting the slave if it gets disconnected. - Inter team
support - Multiple teams working together with an
inter-dependency require downstream
projects to be automatically built. A complete chain of projects with
upstream/downstream can be easily configured. Such projects also need
to keep track of which version of this is used by which version of
that. Hudson uses Finger
printing to simplify this. - Open source
- Hudson is fully open-sourced under the MIT
License. - Maturity
- 226th release was released on 6/17 and never lost data compatbility
even once. The migration from older to newer version is seamless, it's
basically just redeploying the WAR and there is no extra configuration
required. - Extensive
tools outside Hudson - This is possible because of
programmable control interface. Some of the examples are: - Hudson
Tracker & Tray
Application - Small application that sits in your task tray
and monitor Hudson builds - Trac
plugin - Creates links from Hudson projects to Trac instances. - Firefox
Build Monitor plugin - Displays Hudson orbs on Firefox status
bar panel to indicate the build status - Permalink
support - Hudson provides easily readable URLs for most of
the pages such as "last successful build", "promoted build". These URLs
can be used linked from anywhere. - Localization
- Localization is available in English, Japanese, Gemany, French,
Turkish, Brazilian, Portugese, Russian. You can easily create your own
localization bundle by following these
instructions. There is even an IntelliJ
plugin to internationalize existing code. - Building
blocks - Hudson builds on general-purpose building blocks
which can be used for other projects as well: - Stapler
- - URL binding of domain objects
- JSON & XML generation
- Much of the implementation of remoting is in Stapler -
take POJO and convert into XML - IntelliJ plugin for Stapler
- View tier is pluggable - Hudson uses Jelly.
- Remote
Access API - Localizer
- small runtime library to choose the locale with
IDE plugin for i18n
So you still think you need another Continuous Integration tool ?
Download
Hudson now!
Technorati: hudson
top10 glassfish


No comments:
Post a Comment