Need for Continuous Integration:
If you have a reasonably big project with many users working on different modules, then you must use some continuous integration server to aid you in your project builds.
It’s really tedious to build, run unit tests and code coverage tests manually. One of the nice benefit provided by continuous integration servers is that they can build your source upon changes in your source repository.
Popular Continuous Integration Servers:
Fortunately, there are many continuous integration servers out there to help you. Some of them are opensource and some of them commericial.
A few noteworthy open source contenders are:
Some of the commercial vendors include:
– TeamCity from Intellij (Makers of the popular java ide, IDEA)
– Bamboo from Atlassian (Makers of JIRA)
Hudson is a new entrant in the continuous integration space and has been making huge strides forward. It’s a community project hosted in java.net. We will some of the features that make Hudson standout from the rest.
Hudson is very easy to install and use. In fact, there is nothing called “installation” if you are using hudson. All you need to do is, download the “hudson.war” file and run it using the command “java -jar hudson.war”.
Hudson comes with an inbuilt servlet container called “winstone”. By default, it runs on port “8080”. So after running it, all you need to do is open your browser and point to “http://localhost:8080”. That’s it.
But hudson does not force you to use it’s built-in servlet container. You can use any servlet container of your choice, for example, Tomcat.
Hudson is very simple to configure. In my case, all I needed to do was to configure my email setting to ensure that I can receive the notification if any build fails.
But there are lot of options which you can configure like ant home directory, cvs etc, etc.
A major difference between hudson and other competitors is that hudson provides a simple and clean web interface to configure the settings. Whereas some products force the users to tweak through “xml” files.
The most basic thing you expect from a continuous integration server is to invoke your build process without manual intervention. Hudson readily provides this option with powerful scheduling options. So you can schedule your build process to occur every 1 hour or at 5.30 PM every Friday or any other combination you like.
Lots of Plugins:
Are you the only one who is still using that old Visual Source Safe? (Don’t worry, I’m there to accompany you 🙂
Do you use Maven?
No problem, hudson has lots and lots of plugins to meet your need. This is one of the major strengths of hudson.
You can find plugins for subversion, cvs, source safe, maven, jabber, irc, etc, etc..
Enticing User Base:
Many reputed firms like jboss, netbeans etc are using hudson. And I hope most of your projects are not bigger than JBoss Application Server or NetBeans IDE, are they?
It is said that JBoss was previously using CruiseControl as their continuous integration server but now completely switched to Hudson.
You request a new feature, and sometimes you can see your feature request met by hudson in a few days. That’s how vibrant is the community behind hudson and they are constantly improving it.
So if you are looking for a continuous integration server, don’t waste your time by reading about various servers out there. Go for hudson, you will not regret.