Maven Repositories
Maven repositories
are directories of packaged JAR files with extra meta data. The meta data are
POM files describing the projects each packaged JAR file belongs to, including
what external dependencies each packaged JAR has. It is this meta data that
enables Maven to download dependencies of your dependencies recursively, until
the whole tree of dependencies is download and put into your local repository.
Maven has three types of repository:
Maven searches these repositories for
dependencies in the above sequence. First in the local repository, then in the
central repository, and third in remote repositories if specified in the POM.
Here is a diagram illustrating the
three repository types and their location:
Local Repository
A local repository is a directory on the developer's computer. This repository will contain all the dependencies Maven downloads. The same Maven repository is typically used for several different projects. Thus Maven only needs to download the dependencies once, even if multiple projects depends on them (e.g. Junit).
Your own projects can
also be built and installed in your local repository, using the mvn installcommand. That way your other projects can use the packaged JAR
files of your own projects as external dependencies by specifying them as
external dependencies inside their Maven POM files.
By default Maven puts
your local repository inside your user home directory on your local computer.
However, you can change the location of the local repository by setting the
directory inside your Maven settings file. Your Maven settings file is also
located in your user-home/.m2 directory and is calledsettings.xml.
Here is how you
specify another location for your local repository:
<settings>
<localRepository>
d:\data\java\products\maven\repository
</localRepository>
</settings>
Central Repository
The central Maven
repository is a repository provided by the Maven community. By default Maven
looks in this central repository for any dependencies needed but not found in
your local repository. Maven then downloads these dependencies into your local
repository. You need no special configuration to access the central repository.
Remote Repository
A remote repository is a repository on a web server from which Maven can download dependencies, just like the central repository. A remote repository can be located anywhere on the internet, or inside a local network.
A remote repository
is often used for hosting projects internal to your organization, which are
shared by multiple projects. For instance, a common security project might be
used across multiple internal projects. This security project should not be
accessible to the outside world, and should thus not be hosted in the public,
central Maven repository. Instead it can be hosted in an internal remote repository.
Dependencies found in
a remote repository are also downloaded and put into your local repository by
Maven.
You can configure a
remote repository in the POM file. Put the following XML elements right after
the <dependencies> element:
<repositories>
<repository>
<id>jenkov.code</id>
<url>http://maven.jenkov.com/maven2/lib</url>
</repository>
</repositories>
No comments:
Post a Comment