1. 程式人生 > >Maven之——Nexus倉庫與倉庫組

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使用倉庫組的時候、其實是通過倉庫組找到合適的倉庫、進而獲取實際構件的內容、倉庫組只是一個概念、不具有實際功能。