Note: This is a work in progress, please see the index page for more details.
There have been many holy wars fought over the best automated and/or push-button build system over the years and this will not be one of those… more later
I have been using Maven 1 for a few years and have dabbled into Maven 2 for some of my personal projects. I considered writing this around Ant and Ivy; however, though I am good with Ant, I have done little with Ivy and I am trying to write this from a place of understanding, not learning as I go, so I will use Maven 2 as the build environment in combination with an Ant build script for some of the sideline tasks.
Maven provides dependency management and quite a few common build tasks ready to go out of the box with extensions available as plug-ins. The problem is, at least in my experience with Maven 1, if you step outside of the Maven box, you can run into problems.
The golden rule with Maven is that when Maven is happy, you are happy.
Is that really what you want in a build system? Yes and no and it depends on your needs… more later
Ant is infinitely flexible and is very easy to use for build scripting; however, it can sometimes lead you to write the same types of targets over and over in different projects; I believe that this is where maven came from, the need to collect common tasks into common code.more later
Ultimately you need to use the right tool for the right job. Maven is great for building and dependency management, so that is what we will use it for. Ant is great for things that really lie outside of Maven’s functionality, so this is where we will use Ant.
Subversion will be used as my source control repository. You could probably replace it in this discussion with any other SCM supported by Eclipse (or that you are able to use via command line) such as CVS or Perforce; however, Subversion is free, Open Source and fairly common.
I will be using Eclipse throughout this discussion. You are probably safe using any IDE and I will make every attempt to keep things non-specific. I am assuming that you already have your IDE installed, so I will not go into that step. if you want this level of detail, make a comment about it



