Maven之——Nexus倉庫與倉庫組
1、 Nexus的倉庫與倉庫組
Nexus包含多種倉庫概念、包括主要的宿主倉庫、代理倉庫、倉庫組等。不同倉庫提供不同配置、服務。
代理倉庫主要是提供下載快取構件和外掛、如果只是從遠端倉庫下載構件和外掛、那麼代理倉庫完全足夠。宿主倉庫主要用於存放專案部署的構件、或者第三方構件用於提供下載。
2、 Nexus內建倉庫
Nexus預先配置了一些倉庫、如果符合我們使用要求的話、則可以直接使用、簡化配置。使用admin/admin123登入、點選左側導航欄的Repositories連結:
四種倉庫型別:hosted(宿主倉庫)、proxy(代理倉庫)、group(倉庫組)、irtual(虛擬倉庫)。每個倉庫的格式為maven2或者maven1、此外倉庫還有個屬性為Policy(策略)、表示該倉庫是釋出(Release)版本倉庫、還是快照(Snapshot)版本。最後兩列是倉庫的狀態和路徑。如下圖:
Maven1格式倉庫已經不再使用、虛擬倉庫的作用實際上是動態的將倉庫內容格式轉換、也就是為Maven1服務的、也不再說明。
Central: 代理中央倉庫、策略為Release、只會下載和快取中央倉庫中的釋出版本構件。
Release: 策略為Release的宿主倉庫、用來部署組織內部的釋出版本內容。
Snapshot: 策略為Snapshot的宿主倉庫、用來部署組織內部的快照版本內容。
3rd party: 策略為Release的宿主倉庫型別、用來部署無法從公共倉庫獲取的第三方釋出版本構件、如oracle連線驅動jar包。
ApacheSnapshot: 策略為Snapshot的代理倉庫、用來代理ApacheMaven倉庫的快照版本構件。
PublicRepositories:該倉庫將上述所有策略為Release的倉庫聚合並通過一致的地址提供服務。
Public Snapshot Repositories:該倉庫將上述所有策略為Snapshot的倉庫聚合並通過一致的地址提供服務。
3、 Nexus倉庫分類的概念
Maven可以直接使用宿主倉庫、代理倉庫、包含宿主、代理倉庫等的倉庫組、當Maven使用倉庫組的時候、其實是通過倉庫組找到合適的倉庫、進而獲取實際構件的內容、倉庫組只是一個概念、不具有實際功能。