Fundamentals
Set theme to dark (⇧+D)

Artifact Repository

An Artifact Repository stores Versioned artifacts (or: packages), that are generally the output of a CI built. CD retrieves these artifacts to deploy them.

Artifact Repositories should be Immutable, which means that once a specific Version of an artifact has been stored, that it cannot be replaced by another artifact with the same Version. After all, that would defeat the purpose of Versioning.

By Convention the structure of an Artifact Repository is:

Or in words:

  • The Group generally refers to the organization that created the artifact, for example “com.oracle”, or “org.apache”.
  • A Group can have multiple Artifacts, which refers to a specific component. To illustrate, for the group “org.apache” the name of the artifact could be “log4j”.
  • Every Artifact can have a number of versions, that should follow the Semantic Versioning guidelines.
  • Lastly, every Version contains the binary / package.

From the Group, Artifact, and Version one can construct the [[URL]] to download the artifact, for example:

  • `https://{RepositoryRoot}/{group.name1}/{artifact}/{version}/{group.name2}-{artifact}-{version}.zip

… where some implementations {group.name1} use dots (.), while others replace the dots with slashes. {group.name2} always uses dots.