Maven仓库的分类及优先级
1.仓库的分类
maven的仓库主要是用于存储及管理项目中所依赖的组件。可分为本地仓库
和远程仓库
,远程仓库有可以细分为中央仓库
、私有仓库
,中央仓库主要是由maven的开发团队负责开发管理的一些公共组件的公用的仓库;私有仓库主要是指个人通过一些第三方平台搭建的自己的专属仓库;私有仓库又可以根据配置的位置不同可分为全局profile仓库
、项目profile仓库
、项目仓库
、镜像仓库
。
- 本地仓库:本地仓库默认是在.m2文件夹中,可以通过settings.xml文件的标签来指定本地仓库的目录。
<localRepository>D:\Work\Maven\repositoryNexus</localRepository>
- 全局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>
- 项目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>
- 项目仓库:通过项目的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>
- 镜像仓库:通过 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>
- 中央仓库:是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仓库的分类及优先级相关推荐
- Maven仓库理解和优先级
前言 使用 maven 也有一段时间了,有时候在配置 repository,mirror,profile的时候,总会导致 jar 拉取不到.所以认真的分析了 maven 获取 jar 包时候的优先级. ...
- 使用nexus搭建局域网私服Maven仓库(Windows版)
认识Maven仓库 一 什么是Maven仓库 Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和 依赖管理.Maven仓库是专门用来存放jar ...
- Maven学习总结(45)——Maven仓库、将本地Jar包安装到仓库、打可执行的Jar总结
先说说Maven 仓库的分类: maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:2.1 中央仓库 2.2 私服 2.3 其它公共库 1.本地仓库,顾名思义,就是Mav ...
- Maven基础(三)Maven仓库和settings.xml文件配置
一.Maven仓库的分类 Maven 的工作需要从仓库下载一些 jar 包,如下图所示,本地的项目 A.项目 B 等都会通过 maven软件从远程仓库(可以理解为互联网上的仓库)下载 jar 包并存在 ...
- Maven 仓库优先级
maven仓库优先级:本地仓库(localRepositories) > pom.xml文件中的repositories仓库 > setting.xml配置文件中mirrors镜像仓库 m ...
- Maven仓库的布局、分类
任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这便是Maven的仓库布局方式.例如log4j:log4j:1.2.15这一依赖,其对应的仓库路径为log4j/log4j/ ...
- 几种maven仓库的优先级
经测试,几种maven仓库的优先级别为: 本地仓库 >profile(nexus私服) > 项目中pom.xml中的repository > apache-maven-*\conf\ ...
- 利用github搭建个人maven仓库
缘起 之前看到有开源项目用了github来做maven仓库,寻思自己也做一个.研究了下,记录下. 简单来说,共有三步: deploy到本地目录 把本地目录提交到gtihub上 配置github地址为仓 ...
- Maven 仓库、镜像
2019独角兽企业重金招聘Python工程师标准>>> Maven 仓库.镜像 博客分类: 中间件 maven 1.仓库中jar包定位 在maven世界中任何一个依赖.插件或者项目构 ...
最新文章
- GAN 的发展对于研究通用人工智能有什么意义?
- 数据结构与算法 / 霍夫曼树、霍夫曼编码和解码
- 基于事件驱动架构构建微服务第4部分:repositories
- Java实现AVL平衡树
- 保存blob为本地文件
- C# DEV 树、Grid、下拉框等设定数据源对比
- 自从阿里拿下 Flink 以后, 你还不懂 Flink 就 out 了
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_4_transient关键字_瞬态关键字...
- python进阶之学习笔记_Python进阶学习笔记
- c++ ege 坦克大战
- 跟着吴恩达学习机器学习 2代价函数
- 【深度学习】120G+训练好的word2vec模型(中文词向量)
- 力扣 179. 最大数
- 适合中小企业的项目管理系统有哪些?
- 使用clion搭建CUDA开发环境
- QNX----第3章 进程间通信(1部分)
- 郑州大学计算机科学系院长 李,2018年英才计划专家咨询委员会郑州大学调研座谈会圆满举办...
- Python爬取张家界风景美图
- APP接口开发(待完善)
- stdafx.h与Afx.h了解
热门文章
- 自学Python 29 模块架构
- 链游开发需要什么成本
- labview数据采集保存mysql_【源程序】基于Labview多通道数据采集系统 数据库存储...
- Microsoft Project 2010基础使用方法
- android自定义Glide图片加载(以更改Glide缓存路径和使用ARGB_8888的图片格式为例)
- 计科1111-1114班第一周讲义、课外作业(截止日期:2014年3月12日23点-周三晚,学委飞信通知同学)
- golang实现一个带Web界面的五险一金计算器
- 基于Java日程表系统的设计与实现
- 三大电信运营商携号转网数据_携号转网正式上线:三大运营商谁是最大赢家?中国电信偷偷告诉你...
- 石器时代 —— Leetcode刷题日记 (一 百大热题)