Previous – Chapter 3
Maven Tutorial – Chapter 4
What is Maven Repository?
For maven to download the required artifacts of the build and dependencies (jar files) and other plugins which are configured as part of any project, there should be a common place where all such artifacts are placed. This common shared area is called as Repository in maven.
Maven repository is classified into 3 main categories as shown below:
- Local repository – Maven repository which resides in our local machine which are cached from the remote/central repository downloads and ready for the usage. The folder to hold/place all the dependencies in local can be configured in the xml file of the maven folder under the tag <localRepository>.
<settings xmlns=<em>"http://maven.apache.org/SETTINGS/1.0.0"</em> xmlns:xsi=<em>"http://www.w3.org/2001/XMLSchema-instance"</em> xsi:schemaLocation=<em>"http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"</em>> <localRepository>D:/m2repo</localRepository> </settings>
- Remote repository – This Maven repository as the name suggests resides in the remote server and which can be accessed by using different file transfer protocols like file:// or http://. Remote repository will be used for both downloading and uploading the dependencies and artifacts.
<repositories> <repository> <id>remote.repository</id> <url>http://download.ogrname.com/maven2/</url> </repository> </repositories>
- Central repository – This Maven repository is provided by maven community. This repository contains large set of commonly used/required libraries for any java project. Basically, internet connection is required if developers want to make use of this central repository. But, no configuration is required for accessing this central repository.
<repositories> <repository> <id>central.repository</id> <url>http://repo1.maven.org/maven2/</url> </repository> </repositories>
Organization of local and remote/central repositories
How does maven searches for dependencies?
Basically, when maven starts executing the build commands, maven starts for searching the dependencies as explained below:
- It scans through the local repositories for all the configured dependencies. If found, then it continues with the further execution. If the configured dependencies are not found in the local repository, then it scans through the central repository.
- If the specified dependencies are found in the central repository, then those dependencies are downloaded to the local repository for the future reference and usage. If not found, then maven starts scanning into the remote repositories.
- If no remote repository has been configured, then maven will throw an exception saying “not able to find the dependencies” & stops processing. If found, then those dependencies are downloaded to the local repository for the future reference and usage.
Questions? Comments? Suggestions? Let us know!! Like / Subscribe / Follow for more updates.