Error formatting macro: pagetree: java.lang.NullPointerException
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Many different build tools and Java IDEs use public Maven repositories to download dependencies. This page lists the Maven repositories where Clojure and contributed libraries may be found, and how to configure them in different build tools.

A note about releases versus snapshots

Maven repositories distinguish between releases and snapshots.

Releases have fixed version strings, like 1.2.0 or 1.3.0-alpha5. Once it has been uploaded to a public repository, a release never changes.

Snapshots have version strings ending in -SNAPSHOT. Typically, snapshot version strings look like 1.1.0-SNAPSHOT, although Clojure the language adds the name of the git branch, like 1.3.0-master-SNAPSHOT. Snapshots are like tracking the latest version of a project in source control: they can change.

When a snapshot is uploaded to a public Maven repository, the -SNAPSHOT in the version string is replaced with a unique timestamp, so 1.3.0-master-SNAPSHOT would become something like 1.3.0-master-20110408.150223-52.

If you use a -SNAPSHOT version in your project dependencies, most Maven-based tools will automatically check for updated versions of that snapshot. (Maven itself allows you to disable this behavior with the -o option.) To pin your dependency at a specific snapshot version, use the full version string with the timestamp.

Clojure release 1.3.0-alpha5 and later

New snapshots and releases are uploaded to the public repository at https://oss.sonatype.org/content/groups/public/

Releases are automatically sync'd from there to the Maven Central Repository at http://repo1.maven.org/maven2/

How to configure release repositories

Nothing to do here. Maven-based tools always check the Maven Central Repository for releases.

How to configure snapshot repositories

In a Maven project's pom.xml file:

In a Leiningen/Cake project.clj file:

How to configure snapshot repositories globally

This only works if you are building your projects with Maven itself, not with Maven-based tools such as Leiningen.

In your ~/.m2/settings.xml file:

clojure-contrib after 1.2.0

After the 1.2.0 release, clojure-contrib was split into multiple sub-modules. This proved to be ever more cumbersome to work with than the monolithic clojure-contrib, and is being phased out. There is no plan to release clojure-contrib in its monolithic or modularized forms.

Instead, new development of "contrib" libraries is occurring in independent Git repositories, one per library. Each library can have its own version and release cycle completely independent of Clojure. Snapshots and releases of these "new contribs" are uploaded to the public repository at oss.sonatype.org and sync'd to Maven central just like Clojure itself.

How to configure repositories

Same as "Clojure release 1.3.0-alpha5 and later," above.

Clojure and clojure-contrib releases 1.2.0 and earlier

For Clojure the language and clojure-contrib versions 1.0.0, 1.1.0, and 1.2.0, releases and snapshots were uploaded to a public repository at http://build.clojure.org/releases and http://build.clojure.org/snapshots respectively.

Clojure releases 1.0.0, 1.1.0, 1.2.0, and 1.2.1 were also manually uploaded to the Maven Central Repository.

Clojure-contrib release 1.2.0 was manually uploaded to the Maven Central Repository.

Labels: