CruiseControl verses Ant verses Maven2
This week, I took at look at what CruiseControl and Maven2. I have used ant and customized versions of ant in for J2EE builds for many modules source tree as well as projects with one giant nested ant file.
Here is an overview of what the separate items are:
- Maven 2 – Build system that forces your source code to live in a directory layout. Maven supports all development lifecycle steps such as development, testing, deployment, versioning, and also remote libraries. This is definitely very complex.
- CruiseControl – Continuous integration tool. It will check out all your source files whenever it detects a change and kickoff another build and test. Pretty simple once you have it running.
This is my recommendation.
- Use CruiseControl for build automation and setting up the nightly builds.
- Don’t use CruiseControl if you do not needed automated builds.
- Use Maven2, if you want to follow the best practices for J2EE development.
- Don’t use Maven2 if your builds are too customized, or the work required to convert to maven2 would be too involved for your organization.
- Use Ant if your build is highly customized.
- Don’t use ant if Maven or Cruisecontrol can take care of the functionality that you need