Why are you still not using Hudson?
This week Hudson was awarded the Duke’s Choice Award in the Developer Solutions category at JavaOne.
In the space of a couple of years, Hudson has come from nowhere to become the leading contender among Continuous Integration servers. It’s head and shoulders above the other free alternatives, and arguably at least as good as the commercial offerings.

The venerable Cruise Control led the way for many years, but it suffers for having been first. Configuring builds is a lot more work than it needs to be. Continuum improved on this by allowing everything to be controlled via the web interface. Continuum is simple and useful. For a while I used it and I was happy.
Then JetBrains gave away free TeamCity licences with IntelliJ IDEA 6.0 and opened my eyes to a world beyond the fairly basic functionality of Continuum. I was impressed (pre-tested commits are a neat feature), but because you needed licences for every user, I was never able to fully commit to it.
NOTE: JetBrains have since introduced a free professional edition of TeamCity.
Anyway, at some point last year I took a serious look at Hudson. I’d been vaguely aware of it for a little while but never been compelled to try it out.
Hudson is impressive. It is ridiculously easy to install. It has the same ease-of-configuration that makes Continuum so simple, but it combines it with high-end features, such as distributed builds, that are usually only found in commercial offerings like TeamCity and Atlassian’s Bamboo.
Hudson is primarily the work of Sun Microsystem’s Kohsuke Kawaguchi. Kohsuke is a prolific Open Source developer. With Hudson he has designed a system with well thought-out extension points that have enabled an army of plug-in writers to deliver a bewildering array of capabilities.
Out-of-the box Hudson supports CVS and Subversion repositories. Plug-ins extend this list to include Git, Mercurial, Perforce, ClearCase, BitKeeper, StarTeam, Accurev and Visual SourceSafe. Hudson also supports pretty much any type of build script (including Ant, Maven, shell scripts, Windows batch files, Ruby, Groovy and MSBuild).
In addition to e-mail and RSS, Hudson can also notify you of build events via IRC and Jabber as well as via a system tray/dock applet. Of course, all of these were too mundane for Kohsuke, so he built his own glowing orb

But Hudson is much more than just a Continuous Integration server. It’s a complete build management and tracking solution. As well as publishing Javadocs, archiving build artifacts, and monitoring and graphing JUnit/TestNG results over time, you can also track and plot code coverage (Cobertura, EMMA and Clover are all supported) and coding violations (via FindBugs, Checkstyle and/or PMD). And if all that’s not enough, you can play the Continuous Integration game.
So why are you still not using Hudson?
on May 10th, 2008 at 2:20 pm
It’s interesting that you would sing Hudson’s praises and that I would find this article a matter of days after our QA lead gave up on Hudson. Our primary reason for ditching it is because it simply would not cooperate with dependency management. If A depends on B, we make a breaking change in B that causes changes in A. Hudson (set up for A) wouldn’t recompile B. I’m not convinced that this system is as great as the awards it seems to be winning.
on May 10th, 2008 at 3:18 pm
Brian, I guess that’s a good answer to “why are you not using Hudson?”
Hudson has a lot of features and I have not used all of them. I don’t have dependencies set-up between individual projects so I have not encountered that specific problem.
Out of interest, did you find an alternative that did solve your particular problem?
on May 11th, 2008 at 9:04 am
Hi, we use hudson for more than 20 projects, and dependencies work fine.
on May 11th, 2008 at 2:49 pm
We are using an older in-house system for now. I believe our QA team is still following up to figure out why things weren’t working like we expected.
on May 11th, 2008 at 4:30 pm
Great question. I think people don’t realize how easy it is to setup.
The hard part is writing tests.
on May 12th, 2008 at 3:33 pm
[...] Why are you still not using Hudson? Hudson is a complete build management and tracking solution. As well as publishing Javadocs, archiving build artifacts, and monitoring and graphing JUnit/TestNG results over time, you can also track and plot code coverage. (tags: continuousintegration java) [...]