1.仓库的分类

maven的仓库主要是用于存储及管理项目中所依赖的组件。可分为本地仓库远程仓库,远程仓库有可以细分为中央仓库私有仓库,中央仓库主要是由maven的开发团队负责开发管理的一些公共组件的公用的仓库;私有仓库主要是指个人通过一些第三方平台搭建的自己的专属仓库;私有仓库又可以根据配置的位置不同可分为全局profile仓库项目profile仓库项目仓库镜像仓库

  1. 本地仓库:本地仓库默认是在.m2文件夹中,可以通过settings.xml文件的标签来指定本地仓库的目录。
<localRepository>D:\Work\Maven\repositoryNexus</localRepository>
  1. 全局profile仓库:通过 settings.xml 中的 profiles.profile.repositories.repository 配置,对所有使用该maven的项目都生效。
  <profiles><profile><id>dev</id><repositories><repository><id>nexus-repo</id><name>nexus-repo</name><url>http://127.0.0.1:8081/repository/maven-public/</url><layout>default</layout><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile></profiles><!--激活profile--><activeProfiles><activeProfile>dev</activeProfile></activeProfiles>
  1. 项目profile仓库:通过项目的pom.xml 中的 profiles.profile.repositories.repository 配置,仅对该maven的项目都生效。
 <profiles><profile><id>dev</id><repositories><repository><id>nexus-repo</id><name>nexus-repo</name><url>http://127.0.0.1:8081/repository/maven-public/</url><layout>default</layout><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><!--激活profile--><activation><activeByDefault>true</activeByDefault></activation></profile></profiles>
  1. 项目仓库:通过项目的pom.xml 中的 repositories.repository 配置,仅对该maven的项目都生效。
<repositories><repository><id>snapshots</id><name>snapshots-repo</name><url>http://127.0.0.1:8081/repository/maven-snapshots/</url><layout>default</layout><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy><checksumPolicy>warn</checksumPolicy></snapshots><releases><enabled>false</enabled><updatePolicy>always</updatePolicy><checksumPolicy>warn</checksumPolicy></releases></repository>
</repositories>
  1. 镜像仓库:通过 settings.xml 中的 mirrors.mirror 配置。主要提供一个方便切换远程仓库地址的途径。
<mirror><id>nexus-aliyun</id><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>
  1. 中央仓库:是maven默认的远程仓库,在maven的lib安装目录中有一个maven-model-builder-3.0.4.jar,在这个jar包中有个org/apache/maven/model/pom-4.0.0.xml文件,在这个pom文件中就配置了中央仓库,默认的中央仓库的id为central
<repositories><repository><id>central</id><name>Central Repository</name><url>https://repo.maven.apache.org/maven2</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository>
</repositories>
2.仓库的优先级

maven构建的时候,先从本地仓库去寻找组件,本地仓库找不到再去远程仓库中寻找,所以本地仓库的优先级要高于远程仓库。

要点:
(1)当配置多个repository时,无论是配置在settings.xml文件还是pom.xml文件中,依次从这些仓库中查找,如果第一个仓库能找到,就用第一个仓库,如果找不到,就依次往下找。
(2)当同时配置了多个repository和mirror时,如果当中某个repository的id与mirror的mirrorOf的内容相同时,则表示这个仓库被镜像了,将不在从该repository对应的url地址下载组件,而是直接从mirror中的url地址去下载组件。如果repository中的id都没有与mirror的mirrorOf的内容相同时,则依次从这些repository和mirror对应的url地址去查找,直到找到为止。
(3)当mirrorOf的内容为*时,则表示该镜像可以是所有仓库的镜像,无论配置了多少个仓库,都不会从这些仓库对应的url地址去下载组件,只会从这个mirror中的url地址去下载组件。

Maven仓库的分类及优先级相关推荐

  1. Maven仓库理解和优先级

    前言 使用 maven 也有一段时间了,有时候在配置 repository,mirror,profile的时候,总会导致 jar 拉取不到.所以认真的分析了 maven 获取 jar 包时候的优先级. ...

  2. 使用nexus搭建局域网私服Maven仓库(Windows版)

    认识Maven仓库 一 什么是Maven仓库 Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和 依赖管理.Maven仓库是专门用来存放jar ...

  3. Maven学习总结(45)——Maven仓库、将本地Jar包安装到仓库、打可执行的Jar总结

    先说说Maven 仓库的分类: maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:2.1 中央仓库 2.2 私服 2.3 其它公共库 1.本地仓库,顾名思义,就是Mav ...

  4. Maven基础(三)Maven仓库和settings.xml文件配置

    一.Maven仓库的分类 Maven 的工作需要从仓库下载一些 jar 包,如下图所示,本地的项目 A.项目 B 等都会通过 maven软件从远程仓库(可以理解为互联网上的仓库)下载 jar 包并存在 ...

  5. Maven 仓库优先级

    maven仓库优先级:本地仓库(localRepositories) > pom.xml文件中的repositories仓库 > setting.xml配置文件中mirrors镜像仓库 m ...

  6. Maven仓库的布局、分类

    任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这便是Maven的仓库布局方式.例如log4j:log4j:1.2.15这一依赖,其对应的仓库路径为log4j/log4j/ ...

  7. 几种maven仓库的优先级

    经测试,几种maven仓库的优先级别为: 本地仓库 >profile(nexus私服) > 项目中pom.xml中的repository > apache-maven-*\conf\ ...

  8. 利用github搭建个人maven仓库

    缘起 之前看到有开源项目用了github来做maven仓库,寻思自己也做一个.研究了下,记录下. 简单来说,共有三步: deploy到本地目录 把本地目录提交到gtihub上 配置github地址为仓 ...

  9. Maven 仓库、镜像

    2019独角兽企业重金招聘Python工程师标准>>> Maven 仓库.镜像 博客分类: 中间件 maven 1.仓库中jar包定位 在maven世界中任何一个依赖.插件或者项目构 ...

最新文章

  1. GAN 的发展对于研究通用人工智能有什么意义?
  2. 数据结构与算法 / 霍夫曼树、霍夫曼编码和解码
  3. 基于事件驱动架构构建微服务第4部分:repositories
  4. Java实现AVL平衡树
  5. 保存blob为本地文件
  6. C# DEV 树、Grid、下拉框等设定数据源对比
  7. 自从阿里拿下 Flink 以后, 你还不懂 Flink 就 out 了
  8. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_4_transient关键字_瞬态关键字...
  9. python进阶之学习笔记_Python进阶学习笔记
  10. c++ ege 坦克大战
  11. 跟着吴恩达学习机器学习 2代价函数
  12. 【深度学习】120G+训练好的word2vec模型(中文词向量)
  13. 力扣 179. 最大数
  14. 适合中小企业的项目管理系统有哪些?
  15. 使用clion搭建CUDA开发环境
  16. QNX----第3章 进程间通信(1部分)
  17. 郑州大学计算机科学系院长 李,2018年英才计划专家咨询委员会郑州大学调研座谈会圆满举办...
  18. Python爬取张家界风景美图
  19. APP接口开发(待完善)
  20. stdafx.h与Afx.h了解

热门文章

  1. 自学Python 29 模块架构
  2. 链游开发需要什么成本
  3. labview数据采集保存mysql_【源程序】基于Labview多通道数据采集系统 数据库存储...
  4. Microsoft Project 2010基础使用方法
  5. android自定义Glide图片加载(以更改Glide缓存路径和使用ARGB_8888的图片格式为例)
  6. 计科1111-1114班第一周讲义、课外作业(截止日期:2014年3月12日23点-周三晚,学委飞信通知同学)
  7. golang实现一个带Web界面的五险一金计算器
  8. 基于Java日程表系统的设计与实现
  9. 三大电信运营商携号转网数据_携号转网正式上线:三大运营商谁是最大赢家?中国电信偷偷告诉你...
  10. 石器时代 —— Leetcode刷题日记 (一 百大热题)