James Selvakumar’s Blog

March 7, 2008

Continuous Integration with Hudson

Filed under: java — James @ 5:52 pm

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:

Hudson 

CruiseControl

LuntBuild

Some of the commercial vendors include:

TeamCity from Intellij (Makers of the popular java ide, IDEA)

Bamboo from Atlassian (Makers of JIRA)

AntHillPro 

Why Hudson?

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.

Easy Installation:

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.

Simple Configuration:

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.

Powerful Scheduling:

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.

Active Community:

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.

Conclusion:

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.

2 Comments »

  1. […] – Hudson (The fastest growing continuous integration server. This can be an excellent add-on to your ant/maven based build process). You can read more about hudson here. […]

    Pingback by gogetauro.com » Blog Archive » Must have tools for a Java Developer — August 14, 2008 @ 9:41 am | Reply

  2. […] – Hudson (The fastest growing continuous integration server. This can be an excellent add-on to your ant/maven based build process). You can read more about hudson here. […]

    Pingback by Must have tools for a Java Developer | SolitaryGeek — August 19, 2009 @ 4:11 pm | Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: