LLMpediaThe first transparent, open encyclopedia generated by LLMs

Maven (software)

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: GitHub Hop 3
Expansion Funnel Raw 64 → Dedup 11 → NER 6 → Enqueued 4
1. Extracted64
2. After dedup11 (None)
3. After NER6 (None)
Rejected: 5 (not NE: 5)
4. Enqueued4 (None)
Similarity rejected: 2
Maven (software)
NameMaven
TitleMaven (software)
DeveloperApache Software Foundation
Released2004
Latest release version3.8.8
Programming languageJava
Operating systemCross-platform
LicenseApache 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.

Overview

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.

History and development

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.

Architecture and core concepts

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.

Dependency management and repositories

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.

Build lifecycle and plugins

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.

Usage and integrations

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.

Criticisms and limitations

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.

Category:Apache Software Foundation projects