Jun 15, 2024 3 min read

Apache Maven Glossary

Explore the extensive Apache Maven Glossary to uncover essential terms and definitions related to build automation, project management, and dependency management.

Apache Maven Glossary
Apache Maven Glossary
Table of Contents


Navigating the world of software project management and build automation can be complex and overwhelming without a clear understanding of key terms and concepts.

Dive into the realm of Apache Maven, where we have explained all the important terms related to dependency management, build automation, and project comprehension. Enhance your understanding of Apache Maven and boost your knowledge of software project management effortlessly.

Apache Maven Terms


APT: APT is a wiki-style format of documentation that Maven is currently capable of comprehending.

Artifact: An artifact refers to an item that is either generated or utilized by a project. Examples of artifacts produced by Maven for a project include: JARs, source and binary distributions, WARs. Each artifact is distinguished by a group identifier, an artifact identifier, a version, an extension, and a classifier (extension and classifier may be identified by a type).


Dependency: A standard Java project typically relies on libraries for building and/or running. These dependencies are referred to as "dependencies" within Maven, which are often other projects' JAR artifacts. However, they are described by the POM that represents them.


GroupId: A group ID serves as a globally unique identifier for a project. Although it commonly aligns with the project name (e.g., commons-collections), it is beneficial to utilize a fully-qualified package name to differentiate it from other projects sharing a similar name (e.g., org.apache.maven).


Mojo: A Java plugin comprises one or more mojos. A mojo is a Java class that implements the org.apache.maven.plugin.Mojo interface, signifying that a mojo serves as the implementation for a goal within a plugin.


Plug-in: Maven is structured around plugins, with every functionality offered by a plugin. Plugins deliver goals and utilize the metadata found in the POM to execute their tasks. Examples of plugins include jar, eclipse, and war. While plugins are primarily written in Java, Maven also supports the creation of plugins in Beanshell and Ant Scripting.

Project: Maven operates with a project-centric perspective. Every entity you construct is considered a project, adhering to a clearly defined "Project Object Model". Projects can rely on other projects, which are then classified as "dependencies". A project may encompass multiple subprojects, but these subprojects are still regarded as equal projects.

Project Object Model (POM): The Project Object Model, often abbreviated as POM, represents the metadata that Maven requires to manage your project. Its name is "project.xml", and it is situated in the root directory of each project.


Repository: A Maven repository is a storage location that contains various types of build artifacts and dependencies. It can be categorized into two main types: local and remote repositories. The local repository is a directory on the computer where Maven is being run. It serves as a cache for remote downloads and holds temporary build artifacts that have not yet been released. Remote repositories, on the other hand, can be accessed through different protocols such as file:// and https://. These repositories can either be external repositories set up by third parties to distribute their artifacts for downloading (e.g., repo.maven.apache.org), or internal repositories hosted on a file or HTTP server within an organization to share private artifacts between development teams and for releases. Both local and remote repositories share the same structure, allowing for seamless integration and synchronization for offline use. The layout of the repositories is transparent to Maven users, making it easy to work with them.


Snapshots: Projects may (and should) utilize a special version with the label SNAPSHOT to indicate that they are still a work in progress and have not been released. When encountering a snapshot dependency, Maven always searches for it in all remote repositories and downloads a newer version if available, compared to the local copy. The version can be either SNAPSHOT, representing the latest development version, or a specific version like 1.1-SNAPSHOT, indicating upcoming development intended for release as version 1.1. (i.e. newer than 1.0, but not yet 1.1).


XDoc: Maven currently supports XDoc as its documentation format, which is straightforward and enables the incorporation of XHTML within a basic layout. This layout is then converted into a consistent website during the transformation process.

Guide to Install Apache Maven

Ready to dive into using Apache Maven? Ensure you have it installed correctly by following these detailed installation guides tailored to different distros.

With these installation guides, you'll be up and running with Apache Maven in no time!

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to DevOps Tutorials - VegaStack.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.