一、概述
搭建 Maven 仓库前,电脑首先需要配置 JDK 环境,这部分请自行百度。
Nexus 是 Maven 仓库管理器,如果我们使用 Maven,可以从 Maven 中央仓库下载所需要的构件(artifact),但这会受到 Maven 中央仓库是影响 (诸如:带宽),因此我们可以在本地架设一个 Maven 仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。
此外,Nexus 提供了强大的仓库管理功能,构件搜索功能,且占用内存少,因此成为最流行的Maven仓库管理器。
本文以 Window 版本为例。
关联文章:
二、下载
Nexus官网:https://www.sonatype.com/download-oss-sonatype
下载方法有如下两种:
1. 下载方法1
步骤1: 进入官网,输入邮箱 和 确认协议,然后点击 DownLoad 进入下载页。
步骤2:
当然这里可能存在无法下载的情况。
2. 下载方法2
步骤1: 在首页时,选择 Resource -> Documentation
步骤2: 进入 Documentation 页面后,在 Repository Manager 中任选其中一个版本,这里我选择 2.X
版本。
步骤3: 进入 Nexus3.X 的使用文档页面,然后点击左侧的 Download 进入下载页面。
步骤4: 选择要下载的版本,可以复制链接在迅雷下载,下载速度快。
三、Nexus 安装与环境配置
-
步骤1: 压缩包解压
下载下来的是一个 Zip 压缩包,将压缩包放到任意目录进行解压,可以看到会有两个目录:nexus-XXX(版本号)
、sonatype-work
。
-
步骤2: 配置环境变量
进入 Window 的环境变量配置中心配置 系统变量, 而不是用户变量。配置NEXUS_HOME
环境变量,并将该变量指定到 Path 路径中。
-
步骤3: 运行 Nexus
使用管理员权限运行CMD
,输入Nexus start
命令启动 Nexus。当出现下图所示时,代表 Nexus 启动成功,可以在浏览器上输入 127.0.0.1:8081/nexus 或者 http://localhost:8081/nexus 进入管理页面。
关闭 Nexus,可以使用Nexus stop
命令。
-
步骤4: 登录系统
进入127.0.0.1:8081/nexus
页面后,点击右上角的Sign in
登录,输入用户名和密码。
2.x 版本: 用户名为admin
,密码为admin123
。
3.x 版本: 用户名为admin
,密码在解压缩包中的sonatype-work(文件夹) -> nexus3(文件夹 -> admin.password(文件)
中。
四、Nexus 初始化配置
关于 Nexus 配置主要了解两方面:
- 仓库的配置。
- 权限的管理。
1. 仓库的配置
上图中给出的几个默认仓库:
Public Repositories:
仓库组,将所有策略为Release的仓库聚合并通过一致的地址提供服务。3rd party:
一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件。Apache Snapshots:
策略为Snapshots的代理仓库,用来代理Apache Maven仓库的快照版本构件。Central:
该仓库代理Maven的中央仓库,策略为Release,只会下载和缓存中央仓库中的发布版本构件。Central M1 shadow:
maven1格式的虚拟类型仓库。Release:
策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件。Snapshots:
策略为Snapshots的宿主类型仓库,用来部署组织内部的快照版本构件。
仓库的配置参数:
- 仓库的 Type 有四种类型:
group (仓库组)
、hosted (宿主)
、proxy (代理)
、virtual (虚拟)
。- 仓库的 Format 有两种类型:
Maven1
、Maven2
。- 仓库的 Policy (策略) 有两种类型:
发布(Release)版本
、快照(Snapshot)版本
。
说明: group (仓库组)
不存放数据,仅作为多个仓库的聚合,如下图所示。
2. 仓库的配置
Nexus 作为 Maven 私服,当然不允许其他人随意往私仓内提交文件,因此就存在权限管理的配置。
权限管理:
- Role:根据功能的维度定义的权限。
- User:定义用户账户信息。
说明:
提供给用户使用的是 User 角色(账号、密码),而 User 角色默认是没有权限的,当需要某个权限时,只需要添加权限对应的 Role 即可。
如下图所示,自定义 Elson 的 User 角色,该角色配置了 发布权限和所有仓库仅读的权限。
到这里, Nexus 的配置就完成了。