1. 下載并解壓nexus-2.13.0-01-bundle.tar.gz文件
? ? ? ?cd /opt
? ? ? ?mkdir nexus
? ? ? ?cd nexus
? ? ? ?wget?http://www.sonatype.org/downloads/nexus-2.13.0-01-bundle.tar.gz
? ? ? ?修改默認(rèn)端口號為2222(到conf/nexus.properties修改)
2. 啟動nexus
? ? ?cd/opt/nexus/nexus-2.13.0-01/bin
? ? ?./nexus start啟動
? ? ?./nexus stop停止
? ? ? 支持這些命令?nexus { console | start | stop | restart | status | dump }
3.運(yùn)行nexus
? ? ? ?在瀏覽器中輸入:http://ip:2222/nexus/?就可以看到nexus的主頁,點(diǎn)擊右上角Login
? ? ? ?默認(rèn)用戶名和密碼是:admin/admin123
? ? ? ?運(yùn)行后會自動生成一個nexus工作目錄sonatype-work,nexus下載的jar包會存放在sonatype-work/nexus/storage中
? ? ? #注意啟動時有時會有警告,WARNING - NOT RECOMMENDED TO RUN AS ROOT,可以臨時執(zhí)行export RUN_AS_USER=root,也可以? ? ? ? 把這句加入到vi /etc/profile里面,就不會有警告了
4.配置和使用
點(diǎn)擊左側(cè)菜單Repositories將右側(cè)Central和Apache Snapshots的Download Remote Index配置改為True,并保存設(shè)置
將新增的Repository添加到Public Repositories中在Public Repositories的Configuration中,將多選Select中的項(xiàng)全部添加到左邊,然后保存。
添加自己的jar包在repository列表中有一個3rd party,也就是第三方j(luò)ar包,點(diǎn)擊會看到一個Artifact Upload選項(xiàng)卡,點(diǎn)擊后,填寫相應(yīng)的信息。
GAV Definition一般選擇GAV Parameters
然后添加Group:Artifact:Version:Package
示例juel:juel-impl:2.2.1:jar
然后選擇要上傳的jar包,保存即可
5.設(shè)置開機(jī)自啟動
Linux在啟動時,會自動執(zhí)行/etc/rc.d目錄下的初始化程序,因此我們可以把啟動任務(wù)放到該目錄下:
1、因?yàn)槠渲械膔c.local是在完成所有初始化之后執(zhí)行,因此可以把啟動腳本寫到里面;
2、用root賬號登陸Linux,vim /etc/rc.d/rc.local編輯文件,在最后加入需要執(zhí)行的腳本程序:
? ? ? /opt/nexus/nexus-2.13.0-01/bin/nexus start
國內(nèi)文檔maven中央倉庫鏡像:
1.http://maven.oschina.net/content/groups/public(oschina更新頻率更快一些)
2.http://mirrors.ibiblio.org/maven2/
默認(rèn)apacha snapshots:https://repository.apache.org/snapshots/
附錄一些需要了解的:
進(jìn)入nexus主頁以后,點(diǎn)擊左邊導(dǎo)航欄的Repositories,界面的主面板會顯示所有所有倉庫及倉庫組的列表,它們的Type字段的值有g(shù)roup,hosted,proxy,virtual。這里先不關(guān)心virtual
,只介紹下另外三種類型:
hosted,本地倉庫,通常我們會部署自己的構(gòu)件到這一類型的倉庫,比如公司的第二方庫。
proxy,代理倉庫,它們被用來代理遠(yuǎn)程的公共倉庫,如?maven中央倉庫。
group,倉庫組,用來合并多個
hosted/proxy倉庫,當(dāng)項(xiàng)目希望在多個repository使用資源時就不需要多次引用了,只需要引用一個group即可。
由此知道,需要配置一個Maven中央倉庫的proxy,其實(shí)Nexus已經(jīng)內(nèi)置了Maven??Central,但需要做一些配置。
點(diǎn)擊倉庫列表中的Maven??Central(有的版本是Central),注意到它的Policy是release,這說明它不會代理遠(yuǎn)程倉庫的snapshot構(gòu)件,英文遠(yuǎn)程倉庫的snapshot版本構(gòu)件不穩(wěn)定且不受我們控制,
使用這樣的構(gòu)件含有潛在的風(fēng)險。發(fā)現(xiàn)主面板下方有三個Tab,分別為Browse,Configuration和Mirrors,點(diǎn)擊Configuration進(jìn)行配置,你現(xiàn)在需要關(guān)心的是兩個配置項(xiàng):“Remote??Storage?Location
”為遠(yuǎn)程倉庫的地址,對于Maven?Central來說是http://repo1.maven.org/maven2/;“Download?Remote??Indexes”顧名思義是指是否下載遠(yuǎn)程索引文件,Maven??Central的該字段默認(rèn)為False,這是為了防止大量Nexus
無意識的去消耗中央倉庫的帶寬(中央倉庫有大量的構(gòu)件,其索引文件也很大)。這里需要將其設(shè)置為True,然后點(diǎn)擊Save。在Nexus下載的中央倉庫索引文件之后,就可以在本地搜索中央倉庫的所有構(gòu)件。
有幾個項(xiàng)目是我們可能會經(jīng)常用到的:
Override?local?storage?location:?在這個選項(xiàng)你可以配置Nexus本地倉庫的存放地址,用來覆蓋其默認(rèn)的存放地址
Remote?storage?location:?這里是遠(yuǎn)程倉庫的地址,為了提高代理速度,默認(rèn)值是https://repo1.maven.org/maven2/
Download?remote?indexes:?這里配置是否下載遠(yuǎn)程索引文件,模式是false,?建議配置為true,這樣可以通過索引文件來搜索需要的構(gòu)件。
前面看到類型為hosted的為本地倉庫,Nexus預(yù)定義了3個本地倉庫,分別是Releases,?Snapshots,?3rd?Party.
Releases:?這里存放我們自己項(xiàng)目中發(fā)布的構(gòu)建,?通常是Release版本的,?比如自己做了一個Web?Server的項(xiàng)目,?生成的構(gòu)件為webserver.war,?我們就可以把這個構(gòu)建發(fā)布到Nexus的Releases本地倉庫
Snapshots:?這個倉庫非常的有用,?它的目的是讓我們可以發(fā)布那些非release版本,?非穩(wěn)定版本,?比如我們在trunk下開發(fā)一個項(xiàng)目,在正式release之前你可能需要臨時發(fā)布一個版本給其他同事使用,?因?yàn)橥乱舱谝蕾嚹愕哪K開發(fā),?那么這個時候就可以發(fā)布Snapshot版本到這個倉庫,?同事就可以通過簡單的命令來獲取和使用這個臨時版本.
3rd?Party:?顧名思義,?第三方庫,?這里的是指可以添加自己的第三方庫,?比如有些構(gòu)件在中央倉庫是不存在的.?比如在中央倉庫找不到Oracle?的JDBC驅(qū)動,?這個時候就需要自己添加到3rd?party倉庫.