ASF Logo

Resources: Build Information

Artifact Repositories

The artifact repository concept championed by Apache Maven allows build tools to maintain a clean and accurate account of what versions of what dependencies, how they were built, who owns them, what their license is etc (pretty much anything contained within the metadata provided by the artifact).

Several build tools now take advantage of this artifact repository concept such as Maven, Apache Ivy (incubating), and Apache Ant (via Maven 2 Ant tasks)

Global Artifact Repository

The official URL for the central repository is http://repo1.maven.org/maven2/. The content is mirrored across servers globally (ibiblio and contegix are prime examples).

There are several ways to search this, and other, repositories. (all provided externally to apache).

Apache Artifact Repositories

http://people.apache.org/repo/ is the official location for all Apache repositories.

There are 2 types (or layouts) and 3 categories of repository housed at http://people.apache.org/repo/.

Repository Types

Default Layout
    ${groupId}/
      ${artifactId}/
        ${version}/
          ${artifactId}-${version}-${classifier}.${type}

The default layout allows for a clean and well organized filesystem with a comprehensive metadata format v4.0.0 (v4.0.0 Schema).

The metadata for the default layout contains and supports heirarchical metadata references (parent pom) and transitive dependency lookup features present in Maven 2.

Legacy Layout
    ${groupId}/
      ${type}s/
        ${artifactId}-${version}.${type}

The Legacy Layout is a old layout (developed for Maven 1.x) that suffers from a messy filesystem with large file counts per directory, and an inferior metadata format v3.0.0 (v3.0.0 Schema).

The metadata for the legacy layout does not support the hierarchical or transitive features present in the Default Layout (described above).

Repository Categories

Rsync Repository

An Rsync Repository is where you put your artifacts that have been blessed by the members of your project as being for general and widespread release. They are then copied up to the central repository. These repositories are not for use other than the rsync and if they are being so used then they'll be excluded from the website. Content placed onto these repositories are available on the global repository usually within 3 hours, so please be patient.

m2-ibiblio-rsync-repository

This is the place for default format (maven 2) repository content.

As an Apache developer, you can use the Apache parent pom to get all of the definitions needed to set up this repository for deployment.

To set up the apache parent pom, use the following syntax in your pom.xml

            <project>
              ...
              <parent>
                <groupId>org.apache</groupId>
                <artifactId>apache</artifactId>
                <version>3</version>
              </parent>
              ...
            </project>
          

Be sure to check for, and use, the latest version of this parent pom.

m1-ibiblio-rsync-repository

This is the place for legacy format (maven 1) repository content.

Snapshot Repositories

A Snapshot Repository functions in a similar way that a nightly build would work. The content on this repository is to be considered transient and subject to change without notice. The content in here is the result of a deployment of an artifact with the version identifier SNAPSHOT.

In apache there are 2 snapshot repositories. These repositories have a web presense, and are easily browsable. The content on them can be used in any project actively under development, but should not be referenced in released versions of your Apache project.

Content from these repositories are not synchronized with another external (to apache.org) repository. Referencing the content directly via the URLs below is the correct use.

m2-snapshot-repository

This is the place for default format (maven 2) repository content.

m1-snapshot-repository

This is the place for legacy format (maven 1) repository content.

Incubating Repositories

An Incubating repository is an isolated repository containing all produced artifacts from any apache incubator project.

This is the home for content generated by incubating apache projects, the content here is not destined for the global repository mirrors (this is intentional based on incubating rules),

Build tools can refer to content on this repository, but should refrain from producing release builds based on content from this location.

These incubating repositories have a web presence, and are easily browsable. The content on them can be used in any project actively under development, but should not be referenced in a released version of your Apache project.

Content from these repositories are not synchronized with another external (to apache.org) repository. Referencing the content directly via the URLs below is the correct use.

m2-incubating-repository

This is the place for default format (maven 2) repository content.

m1-incubating-repository

This is the place for legacy format (maven 1) repository content.