There are many good tools out there in the world of Java development - the trick is to get them all to play together well. In this session, we will go through the key steps involved in automating a typical Java build process using Maven, Hudson and a large cast of supporting tools such as Checkstyle, FindBugs, and Cobertura. We will use Maven to create a simple web application, comprising of several application layers, and see how Maven helps to manage things such as transitive dependencies, and simplify your life as a developer. Then we will see how to set up Continuous Integration with Hudson, and how to get the best out of the various build metrics and automated code quality and coverage tools. We will also see how Hudson and Maven can work together to make dependencies between modules a non-event. We will also look at how this ties into Subversion, and see how to automate the release process.