Apache Maven
By the Apache Software Foundation
Apache Maven is an open-source build automation and project management tool for Java projects that uses a declarative XML file, the Project Object Model (POM), to manage dependencies, build lifecycle, and project structure.
Definition
Apache Maven is an open-source build automation and project management tool for Java projects that uses a declarative XML file, the Project Object Model (POM), to manage dependencies, build lifecycle, and project structure.
Overview
Released in 2004 as a successor to Apache Ant, Maven introduced a convention-over-configuration philosophy: projects follow a standard directory layout and a predictable build lifecycle (validate, compile, test, package, install, deploy), so teams spend less time writing custom build scripts. Every Maven project is described by a pom.xml file that declares its dependencies, plugins, and metadata. Rather than bundling library files directly in a project, Maven resolves dependencies from Maven Central and other repositories at build time, automatically pulling in transitive dependencies as well. This declarative model contrasts with Gradle, which uses a more flexible Groovy or Kotlin scripting DSL instead of XML. Maven integrates tightly with continuous integration servers like Jenkins and with IDEs such as Eclipse IDE and Apache NetBeans, which can import a pom.xml directly to configure a project. Maven remains one of the most widely used build tools in the Java ecosystem, particularly for enterprise applications, and is the default build system generated by many Spring Boot project starters.
Key Features
- Declarative XML-based Project Object Model (pom.xml)
- Automatic dependency resolution from Maven Central and other repositories
- Standardized, predictable build lifecycle phases
- Convention-over-configuration project directory layout
- Extensible plugin architecture for custom build steps
- Multi-module project support for large codebases
- Broad IDE and CI/CD integration