Apache Maven
Declarative builds for JVM projects, driven by a pom.xml.
Homebrew formula Direct download
What it does
Maven builds Java projects from a declarative POM: dependencies are coordinates resolved from Maven Central into ~/.m2/repository, and the build itself is a fixed lifecycle (validate, compile, test, package, install, deploy) that plugins bind into.
Its value is conventions over configuration — any Maven project builds with mvn package regardless of who wrote it.
Notes
Requires a JDK, so it pulls in openjdk. The local repository under ~/.m2 grows without bound and is safe to delete when disk gets tight.
Alternative to
| Alternative | Type | Trade-off |
|---|---|---|
| Gradle | Open source | Faster incremental builds, Kotlin or Groovy build scripts instead of XML |
| Bazel | Open source | For very large, multi-language repositories |
| sbt | Open source | The Scala world’s default |
| Ant | Open source | The predecessor; you will meet it in old projects |
Install
brew install maven