The Maven procurer uses the qualifier mvn
and is used to retrieve library artifacts from Maven repositories, the standard repository manager in the Java ecosystem. Libraries are downloaded as .jar files and stored in the Maven local repository cache (located in ~/.m2/repository by default or override with :mvn/local-repo). Other JVM-based tools may also use this cache.
Maven libraries are located in Maven repositories using "Maven coordinates", typically the groupId, artifactId, and version (sometimes also abbreivated as GAV). In deps.edn, the library name is parsed as groupId/artifactId
and the version is taken from :mvn/version
. Some Maven artifacts also have a "classifier", which is a variant of a particular artifact. In the Maven procurer, classifiers are included at the end of the lib name, separated by a $
in this format: groupId/artifactId$classifier
.
Currently, only jar
artifacts are supported. Support for other artifact types (particularly Bill of Materials poms) may be added in the future.
Note that Maven <repositories>
declared in dependencies or transitive dependencies are ignored. All repositories needed by the full set of dependencies must be declared in the project deps.edn using :mvn-repos.
:mvn/version
Required for all Maven dependencies, specifies the version as a string.