Apache Maven
Apache Maven is a software project management and comprehension tool based on the concept of a project object model (POM). It provides a uniform build system, dependency management, project lifecycle, and a comprehensive plugin ecosystem for Java projects. Maven 4 is the current major version with the Maven Daemon for faster builds.
APIs
Apache Maven Core
Maven provides a Java API for programmatic build execution, a Plugin API (Mojo) for extending build capabilities, a Repository API for artifact management via Maven Artifact Res...
Maven Central Repository API
The Maven Central Repository (search.maven.org and central.sonatype.com) hosts millions of Java artifacts and provides a REST API and web interface for searching, browsing, and ...
Features
XML-based project descriptor that defines dependencies, build configuration, plugins, and project metadata in a declarative format.
Automatic resolution and downloading of project dependencies and transitive dependencies from Maven Central and other repositories.
Standardized build lifecycle with phases including validate, compile, test, package, verify, install, and deploy.
Extensible plugin system (Mojo API) with hundreds of official and third-party plugins for code generation, testing, packaging, and deployment.
Persistent daemon process that dramatically reduces build startup time by keeping the JVM and Maven warm between builds.
Ensures consistent Maven version usage across a project team without requiring separate Maven installation.
Maven Artifact Resolver library provides programmatic API for artifact resolution, download, and local repository management.
Support for building complex multi-module projects with inter-module dependency management and coordinated releases.
Latest major version with improved APIs, better performance, consumer POM support, and the Maven Upgrade Tool for migration.
Streamlined artifact publishing to Maven Central via Sonatype's publishing portal with automated checks.
Use Cases
Automate compilation, testing, packaging, and deployment of Java projects with standardized build lifecycles.
Declare and automatically resolve project dependencies including transitive dependencies from Maven Central.
Integrate Maven builds into CI/CD pipelines with reproducible builds via the Maven Wrapper and build cache extension.
Manage complex enterprise Java projects with dozens of interdependent modules and shared dependency management.
Publish Java libraries and applications to Maven Central or private artifact repositories for team and public consumption.
Develop custom Maven plugins using the Mojo API to extend build capabilities for specialized project needs.
Integrations
Native Maven project support with POM editing, dependency management, and Maven tool window.
Maven integration via the m2e plugin for POM-based project management within Eclipse IDE.
Jenkins Maven plugin for triggering and monitoring Maven builds in CI/CD pipelines.
Official GitHub Actions for caching Maven dependencies and running Maven builds in workflows.
Enterprise artifact repository manager fully compatible with Maven for hosting private artifact repositories.
Enterprise artifact repository with full Maven repository protocol support and build integration.
Tomcat Maven Plugin enables deploying web applications to Apache Tomcat directly from Maven builds.
Maven plugins for building native images from Java applications using GraalVM Native Image.