一、概述
搭建 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 的配置就完成了。