Maven Repository Metadata Model

This is strictly the model for Maven Repository Metadata, so really just plain objects.

The metadata file name is:

  • maven-metadata.xml in a remote repository,
  • maven-metadata-<repo-id>.xml in a local repository, for metadata from a repository with repo-id identifier.

Depending on what the directory represents ("groupId", "groupId/artifactId" or "groupId/artifactId/version"), the Maven Repository Metadata file contains 3 different sets of metadata:

  1. in a "groupId" directory: a "groupId" directory may contain Maven plugins artifacts, which are described in metadata's plugins element,
  2. in a "groupId/artifactId" directory: metadata describes groupId, artifactId and versioning element that gives data about available versions (latest, release, versions list and lastUpdated),
  3. in a "groupId/artifactId/version" snapshot artifact directory: metadata describes groupId, artifactId, version (base version, i.e. ending in -SNAPSHOT) and versioning element that gives data about snaphot (snapshot, lastUpdated and snapshotVersions list). Notice that a release artifact directory is not expected to provide metadata.

The following are generated from this model:

Notice: data about plugins in a directory representing a groupId is deprecated and will be removed in a future Maven version.