Apache Maven

Apache Maven

Java build and dependency management

Description

A newcomer inherits a Java project and spends the first half-day installing dependencies, fixing paths and working out which command compiles it. Maven ends that: put a pom.xml in the project that states the dependencies and how to build, and one command downloads libraries, compiles, tests and packages.

The time it saves comes from convention over configuration: directory layout and the build lifecycle have sane defaults, so you do not rewrite a build script for every project. Dependencies are fetched from the central repository by coordinates, and the version relationships live in that same descriptor. It is a pure command-line tool with no GUI, ready once unpacked and added to the path, and it needs a JDK. This entry is 3.9.16, a download of nearly 9 MB, so the link points to the official page.

Features



One pom.xml:Project info, dependencies and plugins live in a single file, so another machine builds it the same way.

Dependency management:Downloads libraries by coordinates, along with the libraries they depend on.

Standard lifecycle:Compile, test, package and install phases chain together under one command.

Plugin system:Testing, packaging and documentation are done by plugins, and you can write your own.

Multi-module builds:Build several interdependent subprojects in one run.

Reports and site:Generates project documentation and test reports.