Why you should learn Maven
It's hard to understand what Maven can do for you until you experience it, but bear with me and I'll try to explain what its done for me.
A couple of years ago I was lucky enough to get on a Google Web Toolkit learning course. It was taught by great and inspiring young hacker. He seemed to know everything. We spend ages downloading library jar files for junit, easymock, hibernate, slf4j, and all the libraries that those libaries are dependent on. It took up a lot of time, and I wondered how I would ever find/navigate/manage all those jar files and their dependencies. I could see that it would be pretty easy to get into the java equivalent of .dll hell. However under our instructors expert advice we patched it all together and built our GWT project. I learn a heck of a lot. I learnt some Java, the MVP pattern, saw glimpses into Test Driven Development (TDD) using junit, and easymock, Object Relational Mapping with Hibernate and Dependency Injection. In truth the course blew my mind and I've not been the same since.
More recently I did a course on Restful Web Services in Java (using JBoss' Resteasy). It was taken by the same instructor, but the course examples we're the ones provided with the Resteasy download and documentation. They were Maven projects.
The first couple of weeks we struggled to get our environments working, understand what Maven was doing for us, and work around the issues we all discovered (how to get maven to work from behind a proxy etc), but pretty soon it was up and running, and we all started appreciating Maven's power.
No more download hell, no more searching the hibernate websites for its versions depencies. Simply use http://mvnrepository.com/ to find the artefact you're interested in and add the provided XML into your POM file. Maven manages the download, stores versions in a repository on your local machine, and manages dependencies.
I really experienced the power of maven when got interested in SINA's Cloud Data Management Interface (CDMI) technology. SINA had released a reference architecture implementation, and I thought I'd download it and have a look at the code. I didn't think I'd have a chance of getting it building and running in any sort of reasonable time (I've grown up with C++ remember). However, it was a maven project. I had eclipse installed, and a version of m2eclipse (a plugin that lets eclipse integrate with maven), so I imported the project into eclipse and did a runAs->mvn Install and I couldn't believe it. I sat back and watched as Maven downloaded all the required dependencies, built the project, ran the unit tests & released the binary to my local repository. I then deployed it and had a working CDMI implementation within half an hour of download.
Now that's magic!
That's why I'm spending my evening's learning Maven. I want to be able to create complex maven projects, with parents & children, modules and profiles, with tests run at different points in the project lifecycle (some after compilation - the TDD class level tests) and some run after deployment (unit level tests).
If I can learn to do these things then I can make complex projects that with a few maven commands others will be able to build, run tests, deploy and run unit tests. I just wish I could see their faces when they suddenly understand how easy its going to be for them!