Apache Maven is a build and project management tool for Java-based projects. Its own documentation describes it as “a tool that can now be used for building and managing any Java-based project,” and notes that the name is “a Yiddish word meaning accumulator of knowledge” (https://maven.apache.org/what-is-maven.html). Maven grew out of an effort to simplify the build process in the Jakarta Turbine project.
Maven’s central idea is the Project Object Model, or POM. As the documentation puts it, “Maven builds a project using its project object model (POM) and a set of plugins,” and from that metadata “is able to build any number of projects into predefined output types such as a JAR, WAR, or distribution based on metadata about the project, without the need to do any scripting in most cases” (https://maven.apache.org/what-is-maven.html). Where Ant required you to script each step, Maven lets you declare what a project is and relies on conventions to do the rest.
Maven’s other major contribution was automatic dependency management. The documentation describes “superior dependency management including automatic updating, dependency closures (also known as transitive dependencies),” meaning Maven resolves not just your direct libraries but the libraries those libraries need (https://maven.apache.org/what-is-maven.html).
To fetch those dependencies, Maven introduced the central repository. The documentation states that “Maven comes with a mechanism that your project’s clients can use to download any JARs required for building your project from a central JAR repository much like Perl’s CPAN” (https://maven.apache.org/what-is-maven.html). This combination of declarative models and shared repositories shaped how the Java ecosystem distributes and consumes libraries to this day.