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

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

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

將Nexus的bin目錄添加到Path環(huán)境變量中:

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


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

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


2.2 管理本地倉(cāng)庫(kù)
我們前面講到類型為hosted的為本地倉(cāng)庫(kù),Nexus預(yù)定義了3個(gè)本地倉(cāng)庫(kù),分別是Releases, Snapshots, 3rd Party. 分別講一下這三個(gè)預(yù)置的倉(cāng)庫(kù)都是做什么用的:
Releases:
這里存放我們自己項(xiàng)目中發(fā)布的構(gòu)建, 通常是Release版本的, 比如我們自己做了一個(gè)FTP Server的項(xiàng)目, 生成的構(gòu)件為ftpserver.war, 我們就可以把這個(gè)構(gòu)建發(fā)布到Nexus的Releases本地倉(cāng)庫(kù). 關(guān)于符合發(fā)布后面會(huì)有介紹.
Snapshots:
這個(gè)倉(cāng)庫(kù)非常的有用, 它的目的是讓我們可以發(fā)布那些非release版本, 非穩(wěn)定版本, 比如我們?cè)趖runk下開(kāi)發(fā)一個(gè)項(xiàng)目,在正式release之前你可能需要臨時(shí)發(fā)布一個(gè)版本給你的同伴使用, 因?yàn)槟愕耐檎谝蕾嚹愕哪K開(kāi)發(fā), 那么這個(gè)時(shí)候我們就可以發(fā)布Snapshot版本到這個(gè)倉(cāng)庫(kù), 你的同伴就可以通過(guò)簡(jiǎn)單的命令來(lái)獲取和使用這個(gè)臨時(shí)版本.
3rd Party:
顧名思義, 第三方庫(kù), 你可能會(huì)問(wèn)不是有中央倉(cāng)庫(kù)來(lái)管理第三方庫(kù)嘛,沒(méi)錯(cuò), 這里的是指可以讓你添加自己的第三方庫(kù), 比如有些構(gòu)件在中央倉(cāng)庫(kù)是不存在的. 比如你在中央倉(cāng)庫(kù)找不到Oracle 的JDBC驅(qū)動(dòng), 這個(gè)時(shí)候我們就需要自己添加到3rdparty倉(cāng)庫(kù)。
2.3 在Nexus為自己的項(xiàng)目手動(dòng)單獨(dú)建庫(kù)
建庫(kù),Add-- >HostedRepository


建權(quán)限


建角色(指定權(quán)限)


建用戶(指定角色)


2.4 Maven倉(cāng)庫(kù)組
通過(guò)前面介紹可以了解到, 我們可以建立多個(gè)proxy代理倉(cāng)庫(kù),hosted本地倉(cāng)庫(kù), 如果沒(méi)有倉(cāng)庫(kù)組的概念,我們?nèi)绻枰眠@些倉(cāng)庫(kù)的是時(shí)候需要一一加入到我們的setting.xml里面去, 有了倉(cāng)庫(kù)的組的概念, 我們只需要做一次引用就可以了,把我們需要的倉(cāng)庫(kù)加入到倉(cāng)庫(kù)組即可。如下圖:

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

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

4. 配置倉(cāng)庫(kù)鏡像
默認(rèn)的,如果本地倉(cāng)庫(kù)找不到依賴的構(gòu)件,這時(shí)需要東西時(shí)先到Nexus上找,如果發(fā)現(xiàn)Nexus服務(wù)關(guān)閉后,會(huì)自動(dòng)到中央倉(cāng)庫(kù)找。
如果我們想覆蓋中央倉(cāng)庫(kù)的默認(rèn)地址,強(qiáng)制依賴的東西都到Nexus中去找,即使Nexus關(guān)閉也不會(huì)到中央工廠去下載:
修改Maven的Settings文件:

注意,如果本地倉(cāng)庫(kù)有東西,但Nexus中沒(méi)有,需要將該東西考到Nexus倉(cāng)庫(kù)中,然后更新倉(cāng)庫(kù)索引:

