1、Nexus预置仓库类型介绍
1.1、hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
1.2、proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
1.3、group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
ps:如图所示,maven 可以直接访问hosted仓库和proxy仓库,但是我们常用的做法是使用group来整合使用
2、管理本地仓库
我们前面讲到类型为hosted的为本地仓库,Nexus预置了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:
Release:
这里存放我们自己项目中已经发布的构建, 通常是Release版本的,例如 wcs-RELEASE。
Snapshot:
这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本,例如 wcs-SNAPSHOT。
mixed:
混合的
3、创建各类仓库
【设置】->【Repository】->【Repositories】->【 Create Repository】
proxy仓库:
选择【maven2(proxy)】
可以代理阿里云的中央仓库
http://maven.aliyun.com/nexus/content/groups/public/
hosted仓库:
选择【maven2(hosted)】
group仓库:
选择【maven2(group)】
4、上传项目到Nexus
首先在项目的pom.xml里配置私服地址
<distributionManagement>
<!-- 当你的项目版本号后缀为-SNAPSHOT时,只会上传到snapshot库中。 -->
<snapshotRepository>
<!-- 根据此id去maven的settings.xml的servers中要能找到对应的账号密码 -->
<id>nexus</id>
<name>Nexus Snapshot</name>
<url>http://192.168.10.118:8888/repository/wcs_maven_hosted_snapshot/</url>
</snapshotRepository>
<site>
<id>nexus</id>
<name>Nexus Sites</name>
<url>dav:http://192.168.10.118:8888/repository/wcs_maven_hosted_snapshot/</url>
</site>
<!-- 当你的版本号后缀为-SELEASE时,只会上传到selease库中 -->
<repository>
<id>nexus</id>
<name>Nexus Release</name>
<url>http://192.168.10.118:8888/repository/wcs_maven_hosted/</url>
</repository>
</distributionManagement>
接着在maven的settings.xml中配置访问私服需要的账号密码
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>123456</password>
</server>
</servers>
最后在客户端执行命令:
mvn deploy -Dmaven.test.skip=true
build success后便可以查看到自己上传的项目了。
5、从Nexus下载jar包
首先在项目的pom.xml中设置仓库
<repositories>
<repository>
<!-- 库的名字 -->
<id>wcs_maven_group</id>
<name>wcs_maven_group</name>
<!-- 库的地址 -->
<url>http://127.0.0.1:8888/repository/wcs_maven_group/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
接着在maven的settings.xml里设置镜像
<mirrors>
<mirror>
<!-- 根据此id去server中要能找到对应的账号密码 -->
<id>nexus</id>
<!-- 与repository的id相对应,也可以使用 * 表示找所有库 -->
<mirrorOf>wcs_maven_group</mirrorOf>
<url>http://127.0.0.1:8888/repository/wcs_maven_group/</url>
</mirror>
</mirrors>
最后去库里找自己想要的jar包
复制下来粘贴到<dependencies></dependencies>即可
注意:
项目中<distributionManagement>中的<id>需要和maven的settings.xml中<server>中的<id>以及<mirror>中的<id>保持一致
相关参考:
Maven入门:使用Nexus搭建Maven私服及上传下载jar包