Nexus 是Maven倉庫管理器,若是你使用Maven,你能夠從Maven中央倉庫 下載所須要的構件(artifact),但這一般不是一個好的作法,你應該在本地架設一個Maven倉庫服務器,在代理遠程倉庫的同時維護本地倉庫,以節省帶寬和時間,Nexus就能夠知足這樣的須要。此外,他還提供了強大的倉庫管理功能,構件搜索功能,它基於REST,友好的UI是一個extjs的REST客戶端,它佔用較少的內存,基於簡單文件系統而非數據庫。這些優勢使其日趨成爲最流行的Maven倉庫管理器。數據庫
點擊左邊導航欄的Repositories,界面的主面板會顯示全部一個全部倉庫及倉庫組的列表,你會看到它們的Type字段的值有group,hosted,proxy,virtual。這裏咱們不關心virtual,只介紹下另外三種類型:服務器
hosted,本地倉庫,一般咱們會部署本身的構件到這一類型的倉庫。maven
proxy,代理倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫。spa
group,倉庫組,用來合併多個hosted/proxy倉庫,一般咱們配置maven依賴倉庫組。代理
Nexus預約義了3個本地倉庫,分別爲Releases,Snapshots,和3rd Party。這三個倉庫都有各自明確的目的。Releases用於部署咱們本身的release構件,Snapshots用於部署咱們本身的snapshot構件,而3rd Party用於部署第三方構件,有些構件如Oracle的JDBC驅動,咱們不能從公共倉庫下載到,咱們就須要將其部署到本身的倉庫中。orm
固然你也能夠建立本身的本地倉庫,步驟和建立代理倉庫相似,點擊Repository面板上方的Add按鈕,而後選擇Hosted Repository,而後在下方的配置面板中輸入id和name,注意這裏咱們再也不須要填寫遠程倉庫地址,Repository Type則爲不可修改的hosted,而關於Repository Policy,你能夠根據本身的須要選擇Release或者Snapshot,內存
Nexus中倉庫組的概念是Maven沒有的,在Maven看來,無論你是hosted也好,proxy也好,或者group也好,對我都是同樣的,我只管根據groupId,artifactId,version等信息向你要構件。爲了方便Maven的配置,Nexus可以將多個倉庫,hosted或者proxy合併成一個group,這樣,Maven只須要依賴於一個group,便能使用全部該group包含的倉庫的內容。部署
Nexus預約義了「Public Repositories」和「Public Snapshot Repositories」兩個倉庫組,前者默認合併全部預約義的Release倉庫,後者默認合併全部預約義的Snapshot倉庫。咱們在本文前面的部分建立了一個名爲「Sonatype Repository」的倉庫,如今將其合併到「Public Repositories」中。get