在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级。让我们看一个案例研究,以了解它是如何工作的。假设你想使用 Log4j 作为项目的日志。这里你要做什么?
传统方式
- 访问 http://logging.apache.org/log4j/
- 下载 Log4j 的 jar 库
- 复制 jar 到项目类路径
- 手动将其包含到项目的依赖
- 所以的管理需要由自己做
如果有 Log4j 版本升级,则需要重复上述步骤一次。
Maven 的方式
- 你需要知道 Log4j 的坐标,例如:
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
- 它会自动下载 Log4j 的 1.2.17 的 jar 库
- 声明 Maven 的坐标转换成 pom.xml 文件
<dependencies>
<dependdency>
<groupid>log4j</groupid>
<artifactid>log4j</artifactid>
<version>1.2.17</version>
</dependency>
</dependencies>
- 当 Maven 编译或构建,Log4j 的 jar 会自动下载,并把它放到本地存储库
- 所有由 Maven 管理
解释说明
看看有什么不同?那么到底在 Maven 发生了什么? 当建立一个 Maven 的项目,pom.xml 文件将被解析,如果看到 Log4j 的 Maven 的坐标,然后 Maven 按次顺序搜索 Log4j 库:
- 在 Maven 本地存储库中搜索 Log4j
- 在 Maevn 中央存储库中搜索 Log4j
- 在 Maven 远程存储库中搜索 Log4j(如果在 pom.xml 中定义)
Maven 依赖库管理是一个非常好的工具,为我们节省了大量的工作。