In the past few years Maven has surpassed Ant as the build tool for choice for many projects.
Its adoption by most Open Source projects creates the impression that Maven is the tool of choice
for any Enterprise Java project. While Maven got some things right - constant project layout and
some aspects of dependency management to name a few - it fails when confronted with basic challenges
of development of distributed applications. Maven's initial promise of making simpler,
cleaner build files quickly gets swamped by dummy projects for workarounds, vast configuration
sections inside simple files and unnatural mappings onto Maven's build phases.
The paper describes when and why Maven falls short of other build mechanism and what can be done
about it -
either by using an alternate process, or by fixing the Maven process.
Read the entire document