posted 14 years ago
With Ant, you have total control over the project layout and how the project is built. The price is that you have to manually set everything up and you have to manually script the build.xml.
With Maven, you can often generate the project from an archetype, including the files needed to make it an Eclipse or IntelliJ project. Maven will automatically download and use (shared/cached) copies of dependency jars that you declare, and will then automatically do the same for any dependencies that those resources have. The price is that you have to adhere to Maven's directory structure (or get into a protracted fight with configurations), and there's no easy way to list the valid project goals like there is in Ant.
The Maven rigid directory layout isn't all bad. It does possess the virtue that you can pretty much depend on knowing where to find things in a project that gets dumped on you cold. Also, its heavy reliance on cached resources means that one Maven project I have zips (after cleaning) down to under 3MB, but when I do a "mvn install", results in the creation of a project of nearly 40MB. Since I periodically ship source snapshots out on a fairly slow datalink, I can definitely appreciate that!
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.