1. 在Maven的术语中,仓库是一个位置(place),例如目录,可以存储所有的工程.jar文件,library jar文件,插件或者任何其他的工程指定的文件
  2. Maven仓库有三种类型
    1. 本地(local)
    2. 中央(central)
    3. 远程(remote)
  3. 本地仓库
    1. maven本地仓库是机器上的一个文件夹,它在你第一次运行任何的maven的命令的时候创建
    2. Maven本地仓库保存你的工程的所有的依赖(library jar,plugin jar等),当你第一次运行maven的时候,Maven会自动下载所有依赖的jar文件到本地仓库中,它避免了每次构建的时候都引用存放在远程机器上的依赖文件。
    3. Maven本地仓库默认被创建在%USER_HOME%目录下,要修改此位置,在%M2_HOME%/conf目录中的Maven的setting.xml文件中定义一个路径
    4. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
      http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository>C:/MyLocalRepository</localRepository>
      </settings>
      1. 当再次运行maven命令的时候,Maven将会下载所依赖的文件到你的指定的路径当中
  4. 中央仓库
    1. Maven中央仓库是有Maven的社区提供者提供的仓库,其中包含了大量的常用的库
    2. 中央仓库的概念如下
      1. 这个仓库由Maven社区提供,
      2. 不需要配置
      3. 需要通过网络才可以访问
    3. 要浏览中央仓库的内容,maven社区提供了一个URL(http://search.maven.org/#browse ),使用这个仓库,开发人员可以搜素所有的可以获取的代码库
  5. 远程仓库
    1. 如果Maven在中央仓库中也找不到依赖的库文件,它会停止构建过程并且输出错误信息到控制台,为了避免这种情况的发生,Maven提供了远程仓库的概念,它是开发人员可以自己定制的仓库,包含了所需要的代码库或者其他工程中用到的jar文件。
    2. 举例说明
      1. 使用下面的pom.xml文件,Maven将会从远程仓库下载该pom.xml中声明的所依赖的文件(在中央仓库中找不到的文件)
      2. <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
        http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.companyname.projectgroup</groupId>
        <artifactId>project</artifactId>
        <version>1.0</version>
        <dependencies>
        <dependency>
        <groupId>com.companyname.common-lib</groupId>
        <artifactId>common-lib</artifactId>
        <version>1.0.0</version>
        </dependency>
        <dependencies>
        <repositories>
        <repository>
        <id>companyname.lib1</id>
        <url>http://download.companyname.org/maven2/lib1</url>
        </repository>
        <repository>
        <id>companyname.lib2</id>
        <url>http://download.companyname.org/maven2/lib2</url>
        </repository>
        </repositories>
        </project>
  6. Maven依赖搜索的顺序
    1. 当我们执行Maven构建命令的时候,Maven开始按照一下的顺序查找依赖的库
      1. 在本地仓库中搜索,如果找不到,执行步骤二,如果找到了则执行其他操作
      2. 在中央仓库中搜索,如果找不到,并且有一个或者多个远程仓库已经设置好,则执行步骤四,如果找到了则下载到本地仓库中已被将来引用,
      3. 如果远程仓库没有被配置,Maven将简单的停滞处理并抛出异常(无法找到依赖文件)
      4. 在一个或者多个远程仓库中搜索所依赖的文件,如果找到则下载到本地的仓库已被将来引用,否则maven将停止处理并抛出错误(无法找到依赖的文件)

6、Maven仓库的更多相关文章

  1. 转:aliyun阿里云Maven仓库地址——加速你的maven构建

    maven仓库用过的人都知道,国内有多么的悲催.还好有比较好用的镜像可以使用,尽快记录下来.速度提升100倍. http://maven.aliyun.com/nexus/#view-reposito ...

  2. aliyun阿里云Maven仓库地址——加速你的maven构建

    maven仓库用过的人都知道,国内有多么的悲催.还好有比较好用的镜像可以使用,尽快记录下来.速度提升100倍. http://maven.aliyun.com/nexus/#view-reposito ...

  3. maven仓库信息分析站点推荐

    maven是java的一个依赖,打包管理的工具,稍微大一点的java项目都需要使用maven. 随着java的壮大,maven仓库越来越大,仓库中的jar包有60多万,各种group,各种构件,各种版 ...

  4. 国内好用的maven仓库,添加到本地nexus中

    速度快的maven仓库真的难找,国外网站很多被封了.前天在网上找,有人说阿里有个公开的,速度很快.确实很快! 我添加到本地nexus中,结果不能更新索引,我是这么添加的,如下: 这个地址在浏览器中能够 ...

  5. Maven最佳实践:Maven仓库(转)

    转自:http://juvenshun.iteye.com/blog/359256 什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/li ...

  6. maven仓库使用

    maven镜像仓库 1.国内maven镜像仓库 阿里云镜像 <mirrors> <mirror> <id>aliyun</id> <name> ...

  7. maven 仓库地址:

    maven 仓库地址: 共有的仓库 http://repo1.maven.org/maven2/http://repository.jboss.com/maven2/ http://repositor ...

  8. 配置maven仓库

    1.安装完,配置好环境变量 mvn -v 检查是否成功 mvn install 会将项目生成的构件安装到本地maven仓库 2.settings.xml文件配置: 1)修改本地仓库位置 maven_h ...

  9. 收集的maven 仓库地址(maven repository)

    maven 仓库地址: 共有的仓库http://repo1.maven.org/maven2/http://repository.jboss.com/maven2/http://repository. ...

  10. maven仓库介绍《本地仓库、远程仓库》

    在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称之为构件.Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方)任何的构件 ...

随机推荐

  1. 删除表 (truncate 、delete 、drop)

    来源:http://www.cnblogs.com/dieyaxianju/p/7238936.html 删除表中内容分为三种情况. 1.删除表中所有数据,但保留表结构(可用以下两个语句): trun ...

  2. Windows常用批处理命令 CMD BAT (CMD目录操作等dir)

    Windows常用批处理 CMD BAT CMD获取文件夹下所有文件的名称并打印(输出)到指定目录 dir C:\Users\\Desktop\png\*.*/s >c:\.txt //cmd ...

  3. linux虚拟机内网突然不通了

    之前安装后 内网,外网测试通常的,今天有开发反应es服务不通了  后来到服务器查看了一下,es和同步服务都停了 重新启动,发现同步服务无法启动,网络问题 报错信息“Failed to initiali ...

  4. 记录 shell学习过程(6)while 以及 while的嵌套 以及 until

    while中的5种条件 1.数学比较 read -p "Num :" num1 ] do echo 'greater' sleep done 2.字符串比较 read -p &qu ...

  5. EF CodeFirst数据注解特性详解

    数据注解特性是.NET特性,可以在EF或者EF Core中,应用于实体类上或者属性上,以重写默认的约定规则. 在EF 6和EF Core中,数据注解特性包含在System.ComponentModel ...

  6. Cats and Fish(小猫分鱼吃吱吱吱!)(我觉得是要用贪心的样子!)

    炎炎夏日,一堆

  7. JS高级---bind方法

    bind方法 复制了一份的时候, 把参数传入到了f1函数中, x===>10, y===>20, null就是this, 默认就是window bind方法是复制的意思, 参数可以在复制的 ...

  8. JavaScript——BOM和DOM

    什么是BOM bom:浏览器对象模型 什么是DOM dom:文档对象模型 BOM操作: 调用windows浏览器窗口 windows对象可以通过点调用子对象 windows.navigator对象,可 ...

  9. Apache Kafka(八)- Kafka Delivery Semantics for Consumers

    Kafka Delivery Semantics 在Kafka Consumer中,有3种delivery semantics,分别为:至多一次(at most once).至少一次(at least ...

  10. Flink流处理(一)- 状态流处理简介

    1. Flink 简介 Flink 是一个分布式流处理器,提供直观且易于使用的API,以供实现有状态的流处理应用.它能够以fault-tolerant的方式高效地运行在大规模系统中. 流处理技术在当今 ...