Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
Maven, a Yiddish word meaning accumulator of knowledge, was originally started as an attempt to simplify the build processes in the Jakarta Turbine project. There were several projects each with their own Ant build files that were all slightly different and JARs were checked into CVS. We wanted a standard way to build the projects, a clear definition of what the project consisted of, an easy way to publish project information and a way to share JARs across several projects.
The result is a tool that can now be used for building and managing any Java-based project. We hope that we have created something that will make the day-to-day work of Java developers easier and generally help with the comprehension of any Java-based project.
I used to hate Maven with a passion. It's ideas are quite allright, but it's implementation and the organization of the Maven central repo was and still is a disaster. Dependency management is quite important these days, and it's one of the features Maven is best known for, but you can't use Maven only for its dependency management really. The mandated project structure and the entire "Maven way or the high way" comes coupled with it.
Still, knowing Maven is unavoidable for a Java programmer these days. Whether you're an application programmer that wants to make use of third party projects, or a (open source) library writer, the sheer popularity of Maven means you simply can't ignore it.
So, I advise everyone in Java to learn this tool, but I'm personally not the biggest fan of it.