Maven 依赖机制

概述

在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级。让我们看一个案例研究,以了解它是如何工作的。假设你想使用 Log4j 作为项目的日志。这里你要做什么?

传统方式

  • 访问 http://logging.apache.org/log4j/
  • 下载 Log4j 的 jar 库
  • 复制 jar 到项目类路径
  • 手动将其包含到项目的依赖
  • 所有的管理需要一切由自己做

如果有 Log4j 版本升级,则需要重复上述步骤一次。

Maven 的方式

  • 你需要知道 log4j 的 Maven 坐标,例如:

      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
  • 它会自动下载 log4j 的 1.2.17 版本库
  • 声明 Maven 的坐标转换成 pom.xml 文件
      <dependencies>
          <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
          </dependency>
      </dependencies>
  • 当 Maven 编译或构建,log4j 的 jar 会自动下载,并把它放到 Maven 本地存储库
  • 所有由 Maven 管理

解释说明

看看有什么不同?那么到底在 Maven 发生了什么?当建立一个 Maven 的项目,pom.xml 文件将被解析,如果看到 log4j 的 Maven 坐标,然后 Maven 按此顺序搜索 log4j 库:

  • 在 Maven 的本地仓库搜索 log4j
  • 在 Maven 中央存储库搜索 log4j
  • 在 Maven 远程仓库搜索 log4j(如果在 pom.xml 中定义)

Maven 依赖库管理是一个非常好的工具,为您节省了大量的工作

原文地址:https://www.cnblogs.com/bjio/p/11681942.html

时间: 2024-11-09 20:29:02

Maven 依赖机制的相关文章

maven 学习---Maven依赖机制

在 Maven 依赖机制的帮助下自动下载所有必需的依赖库,并保持版本升级. 案例分析 让我们看一个案例研究,以了解它是如何工作的.假设你想使用 Log4j 作为项目的日志.这里你要做什么? 1.在传统方式 访问 http://logging.apache.org/log4j/ 下载 Log4 j的 jar 库 复制 jar 到项目类路径 手动将其包含到项目的依赖 所有的管理需要一切由自己做 如果有 Log4j 版本升级,则需要重复上述步骤一次. 2. 在Maven的方式 你需要知道 log4j

Maven依赖机制理解

假设一个项目需要用到日志组件Log4j,那么有如下方式添加这个组件. 一.传统方式: 1.访问官网https://logging.apache.org/log4j/2.x/download.html,下载指定版本的jar包. 2.拷贝jar包到项目的lib目录,或者eclipse中指定依赖目录. 3.当有新版的Log4j更新,以上方式就要重新做一次. 那么问题来了,像Log4j这样的包管理工作就必须自己去配置,假设一个项目有十几个依赖包,那么上面的方式工作量就是相当庞大的. 二.Maven方式:

Maven依赖机制

1.Maven本地资源库 2.Maven中央储存库 3.Maven远程仓库 Maven的依赖库查询顺序更改为: 在 Maven 本地资源库中搜索,如果没有找到,进入第 2 步,否则退出. 在 Maven 中央存储库搜索,如果没有找到,进入第 3 步,否则退出. (需要在pom.xml中声明)在 Maven的远程存储库搜索,如果没有找到,提示错误信息,否则退出. 操作都是基于pom.xml配置文件的. ①:添加jar包依赖 声明 log4j的Maven 的坐标转换成 pom.xml 文件,将会按上

Maven的依赖机制介绍

以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_manage_dependencies.html: 一.前言 Maven的一个核心特性就是依赖管理.当我们涉及到多模块的项目(包含成百个模块或者子项目),管理依赖就变成一项困难的任务.Maven展示出了它对处理这种情形的高度控制. 二.可传递性依赖 一种相当常见的情况,当一个库,比如说A依赖于其他库B.假如,另外一个项目C想要使用A,那么项目也需要使

Spring Security 3.2.x与Spring 4.0.x的Maven依赖管理

原文链接: Spring Security with Maven原文日期: 2013年04月24日翻译日期: 2014年06月29日翻译人员: 铁锚 1. 概述 本文通过实例为您介绍怎样使用 Maven 管理 Spring Security 和 Spring 的依赖关系.最新的Spring Security公布版本号能够在 Maven Central仓库 中找到. 译者建议訪问MVNRespotory中org.springframework.security链接.本文是 使用Maven管理Spr

Maven依赖总结

一:依赖范围 Maven在编译项目主代码的时候需要使用一套classpath.其次,在编译和执行测试的时候会使用另外一套classpath.最后,实际运行Maven项目的时候,又会使用一套classpath. 所谓的依赖范围就是用来控制依赖与这三种classpath(编译.测试.运行)的关系,Maven有以下几种依赖范围: compile:编译依赖范围.如果没有指定,默认使用该依赖范围.使用此依赖范围时,对于编译.测试.运行都有效.例如:spring-core,编译.测试.运行时都需要使用该依赖

Maven依赖jar包版本冲突解决方案

1.为何会产生依赖冲突 Maven中的传递性依赖机制,一方面简化了依赖声明,另一方面如果传递依赖有可能引发版本冲突.例如:有这样的依赖关系:a->b->c->x(1.0).a->d->x(2.0),对于这样的冲突Maven给出的方案是:第一原则:路径最近者优先,第二原则:在路径长度相等的前提下,pom中的依赖声明的顺序决定了谁会被解析. 2.如何排除依赖 pom如下: <dependency> ...... <exclusions> <exclu

Maven依赖解析

Maven依赖解析本文将记录Maven工程中依赖解析机制,内容包括: 1. Maven依赖基本结构 上篇文章记录了Maven依赖的聚合与继承,POM中依赖的声明通过dependency进行定义,并且通过groupId.artifactId及version三项定位 http://p.baidu.com/itopic/main/qlog?qid=97a56162633465376437373100&type=questionlog http://p.baidu.com/itopic/main/qlo

maven课程 项目管理利器-maven 3-7 maven依赖范围 2星

本节主要讲了maven的依赖范围: 在pom.xml   dependency标签的scope中.eclipse中有编译的路径,maven中有编译,运行,测试的路径. 1 scope为test,为测试路径,多为junit jar包 2 scope为compile,为默认级别,编译测试运行都有效 3 scope为provided,编译和测试的时候有效 4 scope为runtime,运行和测试的时候有效  (如:jdbc驱动的实现) 5 scope为system,和compile一致,但是可移植能