Maven仓库分为本地仓库和远程仓库
一.本地仓库
默认情况下,每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。我们也可以自定义本地仓库的地址。
安装到jar到本地仓库使用install命令
二、远程仓库
远程仓库分为中央仓库和私有仓库
1)中央仓库
Maven必须要知道至少一个可用的远程仓库,中央仓库就是这样一个默认的远程仓库,Maven的安装文件自带了中央仓库的配置。在D:Javamaven-3.2.1lib文件夹中的maven-model-builder-3.2.1.jar中的pom-4.0.0.xml文件中:
也可以在maven的D:Javamaven-3.2.1conf目录下的settings.xml文件中配置
需要profile标签在profiles中配置,并且在activeProfiles标签中激活
如果我们需要在项目中手动配置工厂可以使用如下配置
snapshots标签表示是否允许下载快照版本
2)私有仓库
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它先从私服请求,如果私服上没有构件,测从外部的远程仓库下载,存在私服上,再为Maven用户下载。现在可以使用最流行的Maven私服软件--Nexus。
1.安装nexus:
a.下载nexus,下载地址http://www.sonatype.org/nexus/
b.解压文件并设置增加path变量:nexus的bin目录
c.执行nexus install安装nexus服务
此外还可以通过nexus uninstall来卸载服务,nexus stop关闭服务,nexus restart重启服务
d.启动nexus服务,使用nexus start来启动
如果启动失败可能是java虚拟机没有找到,在D:Java
exus-2.8.0injswconf目录下的wrapper.conf文件wrapper.java.command=java为java的绝对路径,如wrapper.java.command=D:Javajdk1.8injava
2.nexus仓库分类
a.host仓库。内部项目的发布仓库
b.proxy仓库,从远程中央仓库中寻找数据的仓库
c.group仓库,包含多个仓库的仓库,可以作为内部获取依赖的仓库
3.私有仓库的设置
a.更新仓库的索引
a)在nexus的仓库管理页面上更改仓库的configuration中的
Download Remote Indexes 为 true
b)下载索引文件拷贝到私有仓库的索引存储中
b.设置私有仓库镜像
如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。也就是说,任何一个可以从仓库Y获得的构件,都可以从它的镜像中获取。例如:http://maven.net.cn/content/groups/public/是重要仓库http://repo1.maven.org/maven2/在中国的镜像。由于地理位置的原因,镜像能够提供比中央仓库更快的服务。
镜像的设置在maven的settings.xml文件中,下面就是使用Nexus镜像来代替中央仓库的配置。
此时本地中所有maven项目都会去私有仓库中查找依赖
c.设置中央仓库可以获取snapshots依赖,maven默认的中央仓库不获取快照依赖
4.向私有仓库发布项目
a.设置发布仓库
b.配置发布权限
在maven的settings文件中的servers元素下配置发布权限
3.使用deplay命令发布
4.我们还可以在nexus中为每个项目设置对于的工厂、权限、角色和用户,用于分别控制对应的项目