Generated by GPT-5-mini| Maven (software) | |
|---|---|
| Name | Maven |
| Title | Maven (software) |
| Developer | Apache Software Foundation |
| Released | 2004 |
| Latest release version | 3.8.8 |
| Programming language | Java |
| Operating system | Cross-platform |
| License | Apache License 2.0 |
Maven (software) Apache Maven is a build automation and project management tool for Java-based projects maintained by the Apache Software Foundation. It provides declarative project models, lifecycle management, and a dependency resolution system used across large-scale projects at organizations such as Google, Red Hat, Netflix, Spotify and LinkedIn. Maven integrates with continuous integration servers like Jenkins, Travis CI, and Bamboo, and with integrated development environments including Eclipse, IntelliJ IDEA, and NetBeans.
Maven originated to address recurring needs in software projects at enterprises and research institutions including Sun Microsystems, IBM, Oracle Corporation, Microsoft and HP. It standardizes build processes with a Project Object Model synthesized in XML and coordinates plugins developed by communities including Apache Ant, Gradle, JUnit, Spring Framework and Hibernate. Maven's conventions reduce configuration compared to ad hoc scripts used at organizations like Facebook and Amazon (company), while enabling reproducible builds promoted by initiatives such as DevOps and projects at Linux Foundation centers.
Maven was created within the Apache Ant community and released under the stewardship of the Apache Software Foundation in the early 2000s, influenced by practices at Sun Microsystems and research from universities like Massachusetts Institute of Technology and Stanford University. Its development saw contributions from engineers affiliated with companies such as Codehaus, Google, Red Hat and Sonatype. Major milestones include the adoption of a plugin architecture inspired by Ant and the introduction of a repository model compatible with Artifactory and Nexus Repository Manager. Governance and releases have been guided through Apache Project Management Committees similar to processes used by Apache HTTP Server and Apache Tomcat.
Maven's architecture centers on a declarative Project Object Model (POM) expressed in XML, with lifecycle phases and goals executed by plugins authored by projects like JUnit and Mockito. The design reflects patterns used in OOP ecosystems created at Sun Microsystems and in tooling around Eclipse. Core concepts include coordinates (groupId, artifactId, version) resembling package identifiers used by Maven Central, transitive dependency resolution akin to models in Ivy and a plugin system comparable to Ant tasks. The runtime is implemented in Java and integrates with build servers used in Continuous integration pipelines at teams in Google and Netflix.
Maven introduced a centralized repository ecosystem exemplified by Maven Central and third-party caches like JFrog Artifactory and Sonatype Nexus. Dependencies are declared in the POM and resolved transitively, with scopes (compile, test, provided, runtime) adopted by frameworks such as Spring Framework and testing tools like JUnit and TestNG. Security and provenance concerns have led organizations such as OWASP, CNCF, and large vendors including IBM and Red Hat to recommend repository governance, artifact signing, and policies comparable to supply-chain initiatives like Sigstore.
Maven defines a standard build lifecycle with phases such as validate, compile, test, package, verify, install, and deploy, paralleling workflows used in projects like Apache Tomcat and Spring Boot. Plugins provide goals for compilation via Maven Compiler Plugin, testing via Surefire Plugin (used with JUnit), packaging with Assembly Plugin, and integration with Docker and Kubernetes through community plugins. Plugin development patterns have inspired tooling in Gradle and integration layers for IDEs like IntelliJ IDEA and Eclipse.
Maven is widely integrated in enterprise toolchains at Atlassian (Bamboo), Jenkins, and cloud CI services such as Travis CI and CircleCI. IDE integrations exist for Eclipse (M2E), IntelliJ IDEA, and NetBeans, enabling dependency management alongside frameworks like Spring Framework and build artefact deployment to AWS and Google Cloud Platform. Organizations use Maven with repository managers such as Sonatype Nexus and JFrog Artifactory to implement promotion workflows similar to release processes at Apache Software Foundation projects.
Critiques of Maven include verbosity of XML POM files and rigid convention-over-configuration approaches, which have driven alternatives like Gradle and inspired configuration DSLs used by SBT and Buck. Dependency mediation and "dependency hell" scenarios echo challenges faced by package managers such as npm and RubyGems, prompting adoption of lockfiles and repository policies advocated by OSS governance bodies. Performance and incremental build efficiency compared to tools like Bazel and Gradle have been noted by large-scale projects at Google and Facebook, and plugin fragmentation has led to community efforts coordinated by entities such as Apache Software Foundation and Sonatype.