Maven repositories
The magic behind how Maven finds and loads dependent jars for a given Maven project is Maven repositories. In the corresponding pom.xml
file of your Maven project, under the <dependencies>
element, you can define references to all the dependent jar files required to build your project successfully. Each dependency defined in the pom.xml
file is identified uniquely using Maven coordinates. Maven coordinates uniquely identify a project, a dependency, or a plugin defined in a POM. Each entity is uniquely identified by the combination of a group identifier, an artifact identifier, and version (and, of course, with the packaging and the classifier). Maven coordinates are discussed in detail in Chapter 2, Understanding the Project Object Model (POM). Once Maven finds out all the required dependencies for a given project, it loads them to the local file system of Maven repositories, and adds them to the project classpath.
By convention, Maven uses http://repo.maven.apache.org/maven2 as the repository. If all the artifacts required to build the project are present in this repository, then those will be loaded into the local file system or the local Maven repository, which is, by default, at USER_HOME/.m2/repository
. You can add custom repositories at the project level under the <repositories>
element of the pom.xml
file or at the global level under the MAVEN_HOME/conf/settings.xml
file.