What Is Apache Maven? POMs, Lifecycles, and Dependency Management
Publication Date:
Updated:
INFORMATION > What Is Apache Maven? POMs, Lifecycles, and Dependency Management
Bottom line: Maven is a convention-driven Java build and project-management tool. A POM declares project coordinates, dependencies, plugins, and build settings; lifecycle phases give teams a repeatable way to compile, test, package, verify, and publish artifacts.
What you'll learn
- What Maven manages and what still belongs in source control or CI configuration.
- How POM coordinates, repositories, plugins, phases, and dependency scopes relate.
- How to read the original overview without confusing dependency resolution with the whole build.
Who this is for: Java developers evaluating Maven or trying to understand an inherited pom.xml.
2026 context: Use the Maven Wrapper, pin plugin versions, protect repository credentials, and verify the effective POM in CI. Examples below explain fundamentals; confirm current plugin and JDK compatibility in official documentation.
Overview
Apache Maven—usually called Maven—coordinates Java builds through a project object model (POM), standard lifecycles, and plugins. This overview explains the responsibilities that are often hidden behind a single mvn command.
Table of Contents
1. What is Maven?
Maven is a build and project-management tool. For the distinction between compilation, packaging, and a complete build, see What does it mean to build Java?
A Maven build can coordinate tasks such as:
- resolving JAR dependencies;
- compiling and testing source code;
- selecting output directories; and
- packaging artifacts such as JAR and WAR files.
The official Maven overview summarizes the project's objectives:
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Encouraging better development practices
In practical terms, Maven provides a conventional, repeatable model for describing and running a project build.
2. What Maven manages
The following Maven features help make builds reproducible and easier to maintain.
2-1. Build lifecycle tasks
Maven lifecycle phases invoke configured plugins in a defined order. Common commands include:
- mvn test — compile and run tests;
- mvn clean — remove generated build output;
- mvn package — create the configured artifact, such as a JAR or WAR.
2-2. Dependency resolution
Maven automatically resolves library dependencies, a feature that is often mentioned when discussing what makes Maven so useful.
A declared dependency may itself require other artifacts. Maven reads the dependency's POM and resolves those transitive dependencies according to scope, optionality, exclusions, and version-mediation rules.
See How Maven resolves transitive dependencies for the repository and POM flow.
2-3. Dependency metadata and scopes
A dependency declaration records coordinates and a version rather than only a JAR filename. Its scope describes where it is needed, such as compilation, runtime, or tests.
The pom.xml also records plugins and project settings, making the build definition portable. Reproducibility still depends on controlled repositories, pinned plugin versions, a supported JDK, and consistent settings outside the POM.
3. Conclusion
Maven describes a project in a POM and executes a conventional lifecycle through plugins. Its responsibilities include dependency resolution, compilation, testing, packaging, verification, and publication; the exact behavior is determined by the effective POM and the selected lifecycle phase.
Official references
■INFORMATION
■PROFILE
■CONTACT