Free tutorials for Java, Eclipse and Web programming



Follow me on twitter

Continuous Integration with Hudson - Tutorial

Lars Vogel

Version 0.5

02.02.2010

Revision History
Revision 0.127.12.2008Lars Vogel
First draft of article
Revision 0.226.02.2009Lars Vogel
Continued the work
Revision 0.401.02.2010Lars Vogel
Continued the work
Revision 0.502.02.2010Lars Vogel
Added SCM

Hudson

This article describes how to build a continuous integration cycle for Java development.

This article is currently in DRAFT.


Table of Contents

1. Continuous Integration with Hudson
1.1. Continuous Integration Overview
1.2. Hudson
1.3. Requirements for using Hudson
2. Installation
2.1. Apache Ant, Tomcat
2.2. Hudson
2.3. Configure Hudson
2.4. Using svn and Hudson behind a proxy
3. Version control systems
4. Setting up a Hudson job
5. Thank you
6. Questions and Discussion
7. Links and Literature
7.1. Source Code
7.2. Hudson links
7.3. PDE/Build links

1. Continuous Integration with Hudson

1.1. Continuous Integration Overview

Continuous integration is a process in which all development work is integrated at a predefined time or event and the resulting work is automatically tested and build. The idea is that development errors are identified very early in the process.

1.2. Hudson

Hudson is one open source tool to perform Continuous Integration. The basic functionality of Hudson is to monitor a SCM (Source Control System) and if changes occurs to start and monitor a build system (for example Apache Ant or Maven). Hudson will monitor the whole process and provide reporting functionality and notification functionality to report success or errors.

Hudson can be extended by additional plugins.

1.3. Requirements for using Hudson

To use Hudson you need:

  • An accessible source code repository, e.g. subversion, with your code checked in.

  • A working build script, e.g. ant script, checked into the respository

  • A webapplication server, e.g. Tomcat, to run Hudson

Tip

Hudson works also without webapplication server but I focus on the more common case.