Maven’s dependency mechanism help to download all the necessary dependency libraries automatically, and maintain the version upgrade as well.
Let see a case study to understand how it works. Assume you want to use Log4J as your project logging mechanism. Here is what you do…
1. In traditional way
- Visit http://logging.apache.org/log4j/
- Download the Log4j jar library
- Copy jar to project classpath
- Include it into your project dependency manually
- All manages by yourself, you need to do everything
If there is a Log4j version upgrade, you need to repeat above steps again.
2. In Maven way
- You need to know the log4j
Maven coordinates, for example
<groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version>
It will download the log4j version 1.2.14 library automatically. If the “version” tag is ignored, it will upgrade the library automatically when there is a newer version.
<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> </dependencies>
- When Maven is compiling or building, the log4j jar will be downloaded automatically and put it into your Maven local repository.
- All manages by Maven.
See the different? So what just happened in Maven? When you build a Maven’s project, the
pom.xml file will be parsed, if it see the log4j Maven coordinate, then Maven search the log4j library in this order :
- Search log4j in Maven local repository.
- Search log4j in Maven central repository.
- Search log4j in Maven remote repository (if defined in pom.xml).
This Maven dependency library management is a very nice tool, and save you a lot of work.
How to find the Maven coordinates?
Visit this Maven center repository, search the jar you want to download.