maven仓库介绍
maven的仓库只有两大类:
1.本地仓库
2.远程仓库
在远程仓库中又分成了3种:
1 中央仓库
2 私服仓库
3 其它公共库
一、本地仓库
顾名思义,本地仓库指的是本地存储的仓库。(注:maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建)maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录下都有一个.m2/repository/的仓库目录,这就是Maven仓库的默认位置。
如果更改这个位置,则需要一个setting.xml文件。这个setting文件具体放在那个地方没有限制,我推荐是跟仓库放在同级,因为这样找的时候好找。下面标红的地方就是我们存放本地仓库的位置,这个位置可以根据自己的需要自定义,没有规定必须要放在那个地方。
<settings> <localRepository>D:\maven_repository</localRepository> </settings>
二、远程仓库
1.央仓库是默认的远程仓库,maven在安装的时候,自带的就是中央仓库的配置。在maven的聚合与继承中我们说过,所有的maven项目都会继承超级pom,具体的说,包含了下面配置的pom我们就称之为超级pom。中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到
<repositories> <repository> <id>central</id> <name>Central Repository</name> <url>http://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
2.私服
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。
Maven私服的 个特性:
1.节省自己的外网带宽:减少重复请求造成的外网带宽消耗
2.加速Maven构件:如果项目配置了很多外部远程仓库的时候,构建速度就会大大降低
3.部署第三方构件:有些构件无法从外部仓库获得的时候,我们可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用
4.提高稳定性,增强控制:Internet不稳定的时候,maven构建也会变的不稳定,一些私服软件还提供了其他的功能
5.降低中央仓库的负荷:maven中央仓库被请求的数量是巨大的,配置私服也可以大大降低中央仓库的压力
当前主流的maven私服:
1.Apache的Archiva
2.JFrog的Artifactory
3.Sonatype的Nexus
maven工程jar下载路径
先从本地仓库中根据maven坐标查找jar,没有则在私服仓库中查找,如果没有则私服仓库从远程仓库中下载jar。