6. Maven 的私服
1. 什么是私服
Maven 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)。一些无法从外部仓库下载到的构件,也能从本地上传到私服供其他人使用。
Maven 私服其实并不是 Maven 的核心概念,它仅仅是一种衍生出来的特殊的仓库,但这并不代表它不重要,相反由于私服具有降低中央仓库负荷、节省外网带宽、以及提高项目稳定性等优点,使得私服在实际开发过程中得到了相当普遍地使用。建立了 Maven 私服后,当局域网内的用户需要某个构件时,会先请求本地仓库,若本地仓库不存在所需构件,则请求 Maven 私服,将所需构件下载到本地仓库,若私服中不存在所需构件,再去请求外部的远程仓库,将所需构件下载并缓存到 Maven 私服,若外部远程仓库不存在所需构件,则 Maven 直接报错。
2. Maven 仓库管理器 Nexus
2.1 什么是Nexus
Nexus 是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven仓库管理器”。 Sonatype Nexus 是当前最流行,使用最广泛的 Maven 仓库管理器。Nexus 分为开源版和专业版,其中开源版足以满足大部分 Maven 用户的需求
2.2 Nexus 仓库的类型
Nexus默认内置了很多仓库,这些仓库可以划分为3种类型,每种类型的仓库用于存放特定的jar包,具体说明如下:
- hosted:宿主仓库,部署自己的jar包到这个类型的仓库中,包括Releases和Snapshots两部分,Releases为公司内部发行版本仓库,Snapshots为公司内部测试版本仓库。
- proxy: 代理仓库,用于代理远程的公共仓库,如Maven中央仓库,用户连接私服,私服自动去中央仓库下载Jar包或者插件。
- group:仓库组,用来合并多个hosted/proxy仓库,通常用于配置自己的Maven连接仓库组。当我们下载jar包时,从仓库组中的每个仓库找一遍,找到后下载。
2.3 如何搭建私服
下载Nexus
安装Nexus
- 下载安装包后解压并进入到 nexus-3.66.0-02\bin目录下
- 双击nexus.exe没有反应,需要以管理员身份打开cmd窗口,输入命令: nexus /run 回车,需要等待一段时间,直到出现Started Sonatype Nexus OSS 3.66.0-02说明安装成功。
访问Nexus
- 访问地址:http://localhost:8081
- 端口号可以改变 , D:\DevTools\Nexus\nexus-3.66.0-02\etc目录下的nexus-default.properties文件中进行修改。
- 注意:如果浏览器访问一直转圈打不开页面,则在cmd窗口ctrl+c唤醒一下就可以打开了。
3. Nexus私服的应用
3.1 登录

密码所在的文件:




点Browse观察
3.2 设置仓库
- 创建仓库




- 将创建好的仓库添加到public组中。


3.3 使用Nexus下载jar包
创建一个新的本地仓库,用来接收Nexus下载下来的jar包。
因为要使用Maven工具访问私服,所以settings.xml文件要修改。
- 本地仓库地址修改为新地址
1 | <localRepository>E:\repository_nexus</localRepository> |
- 设置
标签为Nexus的maven-public库地址(仓库组)
1 | <mirror> |
其中
- 设置每次访问Nexus的用户名和密码,修改settings.xml文件中的
标签
1 | <server> |
- 打开Idea2023,确定是新的本地仓库地址

选择一个项目maven_01执行clean操作。
观察本地仓库:

观察私服Nexus上的maven-public组
3.4 使用Idea部署jar包到Nexus私服
私服Nexus是部署在局域网的,是全公司共享的仓库地址,每个团队都可以将已完成的功能或测试版本发布到私服供别人来使用。
- 打开要部署的项目的pom.xml文件,设置上传路径
1 | <distributionManagement> |
其中

- 运行deploy部署命令
- 观察私服对应仓库变化
release项目部署

snapshot项目部署

总结:整个Maven工具的应用就讲完了。其中一二三章是基础应用,四五六章是高级应用,工作时遇到的问题四五六章有解决方案,到时候再看也来得及。










