maven仓库的概念
1.Maven仓库用于存储jar包、依赖包、插件
2.分类:

1)本地仓库:首次下载不存在,当执行mvn命令后,生成本地仓库
目录为:../.m2/repository
2)中央仓库:不需要配置,下载maven时,已经配置好;默认情况下,我们在新建完maven项目后,第一次运行时,控制台可以看到maven在下载东西,整个过程可能会相当慢,就是因为maven去中央仓库现在需要的构建,而中央仓库位于国外,由于网络等原因,整个下载过程会相当慢;
3)私服:是一种代理技术的运用,由于从中央仓库下载构件比较慢,我们可以通过访问私服,让私服去中央仓库下载,私服下载到构件后会缓存,这样后续的请求就可以直接将缓存的构件返回,无需在下载,私服一般是搭建在公司或组织内部局域网中,因此,速度、稳定性都会有提升;
4)镜像仓库:类似于拦截器的概念。如我们原本是请求某个仓库下载构件的,我们可以通过镜像的方式,将这些请求转交到其他仓库,这样maven就会从其他仓库下载构件。
maven仓库的配置
1.需要配置的仓库为:私服及其他第三方仓库、镜像仓库
- 私服仓库配置:在当前项目的pom文件中

通过repository元素配置一个仓库,一个仓库包括id、name、url,不同的仓库,id不能冲突,url指示仓库的网络地址
- 镜像仓库配置:在settings.xml文件中配置

通过mirror元素配置,其中,mirrorOf元素配置你要对哪个仓库镜像,如上,配置的镜像仓库是阿里云的仓库,central代表中央仓库,意味着原本对中央仓库的请求,现在都转交到阿里云仓库。
maven解析依赖的机制

maven首先在本地仓库中寻找依赖,本地没有的话,会从远程仓库寻找,如果我们配置了其他仓库或者是私服,会先从这些仓库寻找,如果没找到,则从中央仓库寻找,期间,如果配置了镜像,则从相应的镜像仓库寻找依赖。
网友评论