定义: 仓库用来统一存储所有Maven共享构建的位置就是仓库。根据Maven坐标定义每个构建在仓库中唯一存储路径大致为:groupId/artifactId/version/artifactId-version.packaging
仓库的分类
Ø 本地仓库
默认在~/.m2/repository,如果在用户配置中有配置,则以用户配置的地址为准
Ø 远程仓库
n 中央仓库(不包含有版本的jar包)
n 私服
Maven私服
安装Nexus
为所有来自中央仓库的构建安装提供本地缓存。
下载网站:http://nexus.sonatype.org/
安装版本:nexus-2.7.0-06.war
第一步:安装tomcat
第二步:将nexus的war包拷贝到tomcat的webapps下
第三步:启动tomcat后对对nexus-2.7.0-06.war解压安装,最后安装地址:c:/users/mainname下的sonatype-work
============索引文件夹结构
=============依赖存储文件夹结构
输入地址:localhost8080/nexus-2.7.0-06/index.html 既可以打开nexus站点(默认账号:admin 密码:admin123)
ps:如果出现 Warning: Could not connect to Nexus
可能是nexus限定的jdk版本和本地jdk版本不兼容,尝试修改jdk版本(当前兼容的jdk版本是1.7)
Nexus的仓库和仓库组
仓库有4种类型 :
group(仓库组):一组仓库的集合
hosted(宿主):配置第三方仓库(包括公司内部私服和其他第三方公司的私服)
===================================用的很少======================================
proxy(代理):私服会对中央仓库进行代理,用户连接私服,私服自动去中央仓库下载jar包或者插件
virtual(虚拟):兼容Maven1 版本的jar或者插件
Nexus的仓库和仓库组介绍:
3rd party: 一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构建
Apache Snapshots: 一个策略为Snapshot的代理仓库,用来代理Apache Maven仓库的快照版本构建
Central: 代理Maven中央仓库
Central M1 shadow: 代理Maven1 版本中央仓库
Codehaus Snapshots: 一个策略为Snapshot的代理仓库,用来代理Codehaus Maven仓库的快照版本构件
Releases: 一个策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件
Snapshots: 一个策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件
PublicRepositories:该仓库组将上述所有策略为Release的仓库聚合并通过一致的地址提供服务
配置所有构建均从私服下载
在本地仓库的setting.xml中配置如下:
<mirrors> <mirror> <!--此处配置所有的构建均从私有仓库中下载 *代表所有,也可以写central --> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://localhost:8080/nexus-2.7.0-06/content/groups/public/</url> </mirror> </mirrors>
|
以后所有的依赖均从私服下载
部署构建到Nexus
第一步:Nexus的访问权限控制
在本地仓库的setting.xml中配置如下:
<server> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server> |
第二步:配置pom文件
在需要构建的项目中修改pom文件
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://localhost:8080/nexus-2.7.0-06/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Internal Snapshots</name>
<url>http://localhost:8080/nexus-2.7.0-06/content/repositories/snapshots/</url>
</snapshotRepository>
</ distributionManagement >
第三步:执行maven的deploy命令
ps: 默认是snapshot,需要指定时在需要发布的项目的GAV中的V指定,比如:0.0.1-SNAPSHOT发布到快照版本,0.0.1-RELEASE发布到正式版本
在nexus的Release和Snapshot里就能看到了