Nexus 一般用來搭建位於組織或公司內部的 Maven 私服,代理所有的倉庫(包括中央倉庫),用戶通過它就可以獲取和管理所有所需的 Maven 構件。
Nexus 中提供了許多倉庫概念,如代理倉庫、宿主倉庫以及倉庫組等。Nexus 為每一種倉庫都提供了豐富的配置參數,方便我們根據自身需要進行定制。
Nexus 倉庫屬性
點擊左邊導航欄中的 Repositories,可以看到 Nexus 自帶的幾個內置倉庫,如下圖所示

在倉庫列表中,每個倉庫都具有一系列屬性:
- Type:倉庫的類型,Nexus 中有 4 中倉庫類型:group(倉庫組)、hosted(宿主倉庫)、proxy(代理倉庫)以及 virtual(虛擬倉庫)。
- Format:倉庫的格式。
- Policy:倉庫的策略,表示該倉庫是發布(Release)版本倉庫還是快照(Snapshot)版本倉庫。
- Repository Status:倉庫的狀態。
- Repository Path:倉庫的路徑。
由圖 1 可知,Nexus 2.x 默認創建了 6 個倉庫,我們稱它們為 Nexus 內置倉庫。
- Maven Central:該倉庫用來代理 Maven 中央倉庫,其策略為 Release,只會下載和緩存中央倉庫中的發布版本的構件。
- Releases:策略為 Release 的宿主倉庫,用來部署公司或組織內部的發布版本構件。
- Snapshots:策略為 Snapshot 的宿主倉庫,用來部署公司或組織內部的快照版本構件。
- 3rd party:策略為 Release 的宿主倉庫,用來部署第三方發布版本構件,這些構件一般無法從任何遠程倉庫中獲得。
- Public Repositories:該倉庫組將上述所有存儲策略為 Release 的倉庫聚合並通過統一的地址提供服務。
Nexus 倉庫分類
Nexus 倉庫按照類型(Type)區分,主要分為以下 3 個類型:
- 代理倉庫(proxy):用來代理遠程公共倉庫,如 Maven 中央倉庫、JBoss 遠程倉庫。
- 宿主倉庫(hosted):又稱 Nexus 本地倉庫,該倉庫通常用來部署本地項目所產生的構件。
- 倉庫組(group):用來聚合代理倉庫和宿主倉庫,為這些倉庫提供統一的服務地址,以便 Maven 可以更加方便地獲得這些倉庫中的構件。
