1. 環境搭建
1.1 下載
http://www.sonatype.org/nexus/
NEXUS OSS [OSS = Open Source Software,開源軟件——免費]
NEXUS PROFESSIONAL -FREE TRIAL [專業版本——收費]。
所以選擇NEXUS OSS

找到Download andInstall Nexus OSS。下載ZIP的即可:

1.2 配置
將下載的ZIP包解壓,得到如下目錄:

將Nexus的bin目錄添加到Path環境變量中:

將Nexus與當前使用的JDK的關聯,修改如下的配置文件即可,目錄為,
${ Nexus_HOME }/bin/jsw/conf/wrapper.conf。如下圖:


到此配置完畢,然后,
4.2 按住SHIFT+右鍵選擇打開命令窗口
4.3 輸入nexus install
4.4
檢查是否安裝好
去我的電腦里查看服務 并且啟動服務
即可在本地訪問Nexus,如出現下圖就表示配置成功:

2. Nexus中的倉庫
2.1 類型介紹
登陸Nexus,在左邊菜單欄里選擇Repositories,然后會出現右邊的畫面,右邊上半部分是列出來的repository,黑體字是類型為group的repository。
這里簡單介紹下幾種repository的類型:
Ø hosted,本地倉庫,通常我們會部署自己的構件到這一類型的倉庫。比如公司的第二方庫。
Ø proxy,代理倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫。
Ø group,倉庫組,用來合并多個hosted/proxy倉庫,當你的項目希望在多個repository使用資源時就不需要多次引用了,只需要引用一個group即可。


2.2 管理本地倉庫
我們前面講到類型為hosted的為本地倉庫,Nexus預定義了3個本地倉庫,分別是Releases, Snapshots, 3rd Party. 分別講一下這三個預置的倉庫都是做什么用的:
Releases:
這里存放我們自己項目中發布的構建, 通常是Release版本的, 比如我們自己做了一個FTP Server的項目, 生成的構件為ftpserver.war, 我們就可以把這個構建發布到Nexus的Releases本地倉庫. 關于符合發布后面會有介紹.
Snapshots:
這個倉庫非常的有用, 它的目的是讓我們可以發布那些非release版本, 非穩定版本, 比如我們在trunk下開發一個項目,在正式release之前你可能需要臨時發布一個版本給你的同伴使用, 因為你的同伴正在依賴你的模塊開發, 那么這個時候我們就可以發布Snapshot版本到這個倉庫, 你的同伴就可以通過簡單的命令來獲取和使用這個臨時版本.
3rd Party:
顧名思義, 第三方庫, 你可能會問不是有中央倉庫來管理第三方庫嘛,沒錯, 這里的是指可以讓你添加自己的第三方庫, 比如有些構件在中央倉庫是不存在的. 比如你在中央倉庫找不到Oracle 的JDBC驅動, 這個時候我們就需要自己添加到3rdparty倉庫。
2.3 在Nexus為自己的項目手動單獨建庫
建庫,Add-- >HostedRepository


建權限


建角色(指定權限)


建用戶(指定角色)


2.4 Maven倉庫組
通過前面介紹可以了解到, 我們可以建立多個proxy代理倉庫,hosted本地倉庫, 如果沒有倉庫組的概念,我們如果需要引用這些倉庫的是時候需要一一加入到我們的setting.xml里面去, 有了倉庫的組的概念, 我們只需要做一次引用就可以了,把我們需要的倉庫加入到倉庫組即可。如下圖:

倉庫組默認包含本地倉庫Releases,snapshots, 3rd party和代理倉庫MavenCentral. 你可以在Configuration配置頁添加倉庫到這個倉庫組. 如果需要你還可以創建一個倉庫組,在Repositories菜單處選add-->Repository Group即可
3. 項目中配置Nexus倉庫
如果只有一個項目,可以配置在項目的pom文件中:

如果有多個項目都使用Nexus的配置,可以將如上皮遏制放到Maven的Settings文件中:

4. 配置倉庫鏡像
默認的,如果本地倉庫找不到依賴的構件,這時需要東西時先到Nexus上找,如果發現Nexus服務關閉后,會自動到中央倉庫找。
如果我們想覆蓋中央倉庫的默認地址,強制依賴的東西都到Nexus中去找,即使Nexus關閉也不會到中央工廠去下載:
修改Maven的Settings文件:

注意,如果本地倉庫有東西,但Nexus中沒有,需要將該東西考到Nexus倉庫中,然后更新倉庫索引:

