Martijn Verburg wrote:I think you'll need to learn both (anecdotal evidence shows that they are both popular). The Ant in Action and Maven Definitive Guide books will save you many times over.
Tim Holloway wrote:Actually, Ant is more upfront about things, since you have to explictly define each step in the build process. Maven does a lot of "magic", and I don't like magic. The flipside of that, however, it that you can do lots of different things (such as javadoc generation) without having to code them up in the project definition.
However, Maven is my preferred build tool these days for 2 reasons:
1. I have a lot of projects that pull in tons of standard libraries. Maven will do that automatically, and keep cached copies of the libraries so I don't have to have them replicating all over my fileystem. Ant doesn't do that out of the box - it needs help.
2. While I don't really like the Maven standard project directory organization all that much, it is standard, so I know that if I hand off a project to someone else, they'll know where everything is without having to puzzle out my/my employer's project idiosyncrasies.
An extra benefit to Maven came when I ran into a real show-stopped problem using Apache OpenJPA. I changed the dependency in the Maven POM to use Hibernate JPA, did a small mod to the JPA config file, and a "mvn clean package". Just that simple and I was back in the running. If it had been an Ant-based project, I would have had to fetch the Hibernate libraries AND make multiple changes to build.xml.