一、为什么不理解这两者的区别?二、具体原理是怎么样的?
一、为什么不理解这两者的区别?# 授之以鱼,不如授之以渔。#
很多时候我们不懂陌生的东西,主要还是对这两者本身的功能属性不了解,才会出现根本看不懂区别在哪,所以问题需要看本质。可以从以下几个步骤入手:
(1)字面意思,
mirror:镜像,我们开发过程中见到非常多镜像场景,比如经常会看到国外的一些网站访问很慢,我们回去清华或者阿里之类的镜像网站去下载对应资源,到这里应该就比较好理解了。
repository:仓库,只要使用maven的人,对于仓库的概念应该不会陌生,我们开发经常需要依赖非常多的一些第三方包,这个时候,不可能在每个项目模块中添加对应的仓库地址,太过冗余,最简单的办法是在本地的setting配置中统一添加本地仓库、中央仓库和远程仓库;
关于概念,说句实在话,对于这种广泛使用的工具,个人感觉用词非常贴切,所以呢,重要的事情说三遍。官方文档!官方文档!官方文档!
(2)经验
关于这一点,可能确实依赖平时经验总结,比如上面官方文档提到的,如果你不想或者不敢修改你原有配置的时候,就可以使用镜像的方式去指定替代前面repository中定义的具体仓库,也就是上面中定义的具体名称的仓库。
(3)扩展
能不能有针对性的对我某些repository进行镜像转发请求呢,即我定义了多个远程仓库(由
介绍前需要先说明一下maven第三方依赖管理的大致逻辑:
步骤一:优先查询本地仓库地址是否存在,不存在,继续;步骤二:从配置的center repository 下载,没找到,继续;步骤三,依次从配置的 根据我们上面思考的扩展点,查看官方文档: * = everything 拦截所有 setting.xml文件的其他属性,官方文档都有详细的说明和示例。
*,!repo1 = everything except repo1 拦截除了



