Windows环境下搭建nexus私服
1.背景
回顾下maven的构建流程,如果没有私服,我们所需的所有jar包都需要通过maven的中央仓库或者第三方的maven仓库下载到本地,当一个公司或者一个团队所有人都重复的从maven仓库下载jar包,这样就加大了中央仓库的负载和浪费了外网的带宽,如果网速慢的话还会影响项目的进程
2.简介
私服是在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载jar包时,先请求私服,私服上如果存在则下载到本地仓库。否则,私服直接请求外部的远程仓库,将jar包下载到私服,再提供给本地仓库下载。
3.安装
3.1 下载 Maven 仓库管理软件(我们这里使用的是2.x的版本)
https://help.sonatype.com/repomanager2/download
3.2 本地解压
3.3 启动
- 3.3.1 以管理员身份打开cmd,进入到bin目录,先执行nexus install命令,再执行nexus start。
- 3.3.2 打开浏览器,访问http://localhost:8081/nexus
- 3.3.3 点击右上角Log in,使用用户名:admin,密码:admin123登录
4.介绍nexus服务器预置的仓库
hosted:是本地仓库,用户可以把自己的一些jar包,发布到hosted中,比如公司的第二方库
proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。不允许用户自己上传jar包,只能从中央仓库下载
group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可
virtual,虚拟仓库基本废弃了。
预置仓库
Central:该仓库代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。
Releases:这是一个策略为Release的宿主类型仓库,用来部署正式发布版本构件
Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署开发版本构件。
3rd party:这是一个策略为Release的宿主类型仓库,用来部署无法从maven中央仓库获得的第三方发布版本构件,比如IBM或者oracle的一些jar包(比如classe12.jar),由于受到商业版权的限制,不允许在中央仓库出现,如果想让这些包在私服上进行管理,就需要第三方的仓库。
Public Repositories:一个组合仓库
5.创建仓库
5.1点击add ------>hosted repository
5.2填写仓库信息
5.3自己创建的仓库添加到group
- 5.3.1然后选择Public Repositories,打开configuration选项卡,将自己创建的仓库添加到group
5.4将项目发布到maven私服
- 5.4.1 首先配置maven的setting文件
//配置的是授权信息 id为仓库的id
<server>
<id>xiaoqiid</id>
<username>admin</username>
<password>admin123</password>
</server>
//配置maven公共仓库的地址
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
//配置profile
<profile>
<id>xiaoqiid</id> // id随便写 和下面的activeProfile 对应
<repositories>
<repository>
<id>nexus</id> //id随便写
<name>nexus private server</name>
<layout>default</layout>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<!--
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
-->
</repository>
</repositories>
</profile>
<activeProfiles>
<activeProfile>xiaoqiid</activeProfile>
</activeProfiles>
- 5.4.2pom文件添加
<distributionManagement>
<repository>
<id>xiaoqiid</id>
<url>http://localhost:8081/nexus/content/repositories/xiaoqiid</url>
</repository>
</distributionManagement>
5.4.3 clean package deploy 打包之后 查看私服
6.完成
在开发阶段,可以将包打成快照的版本,这样同事就不需要一直的更改版本,此次没有写在上面,如有需要,下次更新