Maven repositories are physical directories that contain packaged JAR files along with extra metadata about these jar files. This metadata is in the form of POM files that have jar file project information, including what other external dependencies this JAR file has. These other external dependencies are downloaded transitively into your project and become part of the effective pom for the project.
1. Local Repository
Maven local repository resides in the developer’s machine. Whenever you run Maven goals that require these dependencies, maven will download the dependencies from remote servers and store them on the developer’s machine.
By default, Maven creates the local repository inside the user’s home directory i.e.
C:/Users/superdev/.m2 directory. You can change the location of the local repository in setting.xml file using
<settings> <localRepository>C:\M2</localRepository> </settings>
Having stored the dependencies on the local machine has two main benefits.
- First, multiple projects can access the same artifact so it reduces the storage need.
- Second, as dependency is downloaded only once, it reduces network usage as well.
2. Central Repository
Maven central repository is located at https://repo.maven.apache.org/maven2/. Whenever you run a build job, maven first tries to find dependency from the local repository. If it is not there, then, by default, maven will trigger the download from this central repository location.
To override this default location, you can make changes to your
settings.xml file to use one or more mirrors.
You do not need to make any special configuration to allow access to the central repository, except network proxy settings if you are behind any firewall.
3. Remote Repository
Apart from the central repository, you may have needed artifacts deployed in other remote locations. For example, in your corporate office, there may be projects or modules specific to the organization only. In this case, the organization can create a remote repository and deploy the private artifacts. This remote repository will be accessible only inside the organization.
These Maven remote repository work exactly the same way as Maven’s central repository. Whenever an artifact is needed from these repositories, it is first downloaded to the developer’s local repository and then it is used.
You can configure a remote repository in the POM file or super POM file in the remote repository itself.
<repositories> <repository> <id>org.source.repo</id> <url>https://maven.orgName.com/maven2/</url> </repository> </repositories>
Drop me your questions in the comments section.
Happy Learning !!