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?
  2. What Maven manages
  3. Conclusion

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