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)端口號(hào)為2222(到conf/nexus.properties修改)
2. 啟動(dòng)nexus
? ? ?cd/opt/nexus/nexus-2.13.0-01/bin
? ? ?./nexus start啟動(dòng)
? ? ?./nexus stop停止
? ? ? 支持這些命令?nexus { console | start | stop | restart | status | dump }
3.運(yùn)行nexus
? ? ? ?在瀏覽器中輸入:http://ip:2222/nexus/?就可以看到nexus的主頁(yè),點(diǎn)擊右上角Login
? ? ? ?默認(rèn)用戶名和密碼是:admin/admin123
? ? ? ?運(yùn)行后會(huì)自動(dòng)生成一個(gè)nexus工作目錄sonatype-work郑什,nexus下載的jar包會(huì)存放在sonatype-work/nexus/storage中
? ? ? #注意啟動(dòng)時(shí)有時(shí)會(huì)有警告蘑拯,WARNING - NOT RECOMMENDED TO RUN AS ROOT申窘,可以臨時(shí)執(zhí)行export RUN_AS_USER=root孔轴,也可以? ? ? ? 把這句加入到vi /etc/profile里面路鹰,就不會(huì)有警告了
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列表中有一個(gè)3rd party,也就是第三方j(luò)ar包联贩,點(diǎn)擊會(huì)看到一個(gè)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ī)自啟動(dòng)
Linux在啟動(dòng)時(shí)禁荸,會(huì)自動(dòng)執(zhí)行/etc/rc.d目錄下的初始化程序阀湿,因此我們可以把啟動(dòng)任務(wù)放到該目錄下:
1陷嘴、因?yàn)槠渲械膔c.local是在完成所有初始化之后執(zhí)行罩旋,因此可以把啟動(dòng)腳本寫到里面眶诈;
2、用root賬號(hào)登陸Linux浴骂,vim /etc/rc.d/rc.local編輯文件溯警,在最后加入需要執(zhí)行的腳本程序:
? ? ? /opt/nexus/nexus-2.13.0-01/bin/nexus start
國(guó)內(nèi)文檔maven中央倉(cāng)庫(kù)鏡像:
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主頁(yè)以后梯轻,點(diǎn)擊左邊導(dǎo)航欄的Repositories,界面的主面板會(huì)顯示所有所有倉(cāng)庫(kù)及倉(cāng)庫(kù)組的列表喳挑,它們的Type字段的值有g(shù)roup伊诵,hosted曹宴,proxy歉提,virtual。這里先不關(guān)心virtual
弯屈,只介紹下另外三種類型:
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即可。
由此知道白对,需要配置一個(gè)Maven中央倉(cāng)庫(kù)的proxy,其實(shí)Nexus已經(jīng)內(nèi)置了Maven??Central甩恼,但需要做一些配置条摸。
點(diǎn)擊倉(cāng)庫(kù)列表中的Maven??Central(有的版本是Central),注意到它的Policy是release切端,這說(shuō)明它不會(huì)代理遠(yuǎn)程倉(cāng)庫(kù)的snapshot構(gòu)件踏枣,英文遠(yuǎn)程倉(cāng)庫(kù)的snapshot版本構(gòu)件不穩(wěn)定且不受我們控制,
使用這樣的構(gòu)件含有潛在的風(fēng)險(xiǎn)间驮。發(fā)現(xiàn)主面板下方有三個(gè)Tab马昨,分別為Browse鸿捧,Configuration和Mirrors笛谦,點(diǎn)擊Configuration進(jìn)行配置,你現(xiàn)在需要關(guān)心的是兩個(gè)配置項(xiàng):“Remote??Storage?Location
”為遠(yuǎn)程倉(cāng)庫(kù)的地址恳邀,對(duì)于Maven?Central來(lái)說(shuō)是http://repo1.maven.org/maven2/谣沸;“Download?Remote??Indexes”顧名思義是指是否下載遠(yuǎn)程索引文件笋颤,Maven??Central的該字段默認(rèn)為False伴澄,這是為了防止大量Nexus
無(wú)意識(shí)的去消耗中央倉(cāng)庫(kù)的帶寬(中央倉(cāng)庫(kù)有大量的構(gòu)件非凌,其索引文件也很大)敞嗡。這里需要將其設(shè)置為True,然后點(diǎn)擊Save棱貌。在Nexus下載的中央倉(cāng)庫(kù)索引文件之后婚脱,就可以在本地搜索中央倉(cāng)庫(kù)的所有構(gòu)件。
有幾個(gè)項(xiàng)目是我們可能會(huì)經(jīng)常用到的:
Override?local?storage?location:?在這個(gè)選項(xiàng)你可以配置Nexus本地倉(cāng)庫(kù)的存放地址涡贱,用來(lái)覆蓋其默認(rèn)的存放地址
Remote?storage?location:?這里是遠(yuǎn)程倉(cāng)庫(kù)的地址问词,為了提高代理速度,默認(rèn)值是https://repo1.maven.org/maven2/
Download?remote?indexes:?這里配置是否下載遠(yuǎn)程索引文件激挪,模式是false,?建議配置為true垄分,這樣可以通過(guò)索引文件來(lái)搜索需要的構(gòu)件薄湿。
前面看到類型為hosted的為本地倉(cāng)庫(kù)豺瘤,Nexus預(yù)定義了3個(gè)本地倉(cāng)庫(kù)坐求,分別是Releases,?Snapshots,?3rd?Party.
Releases:?這里存放我們自己項(xiàng)目中發(fā)布的構(gòu)建,?通常是Release版本的,?比如自己做了一個(gè)Web?Server的項(xiàng)目,?生成的構(gòu)件為webserver.war,?我們就可以把這個(gè)構(gòu)建發(fā)布到Nexus的Releases本地倉(cāng)庫(kù)
Snapshots:?這個(gè)倉(cāng)庫(kù)非常的有用,?它的目的是讓我們可以發(fā)布那些非release版本,?非穩(wěn)定版本,?比如我們?cè)趖runk下開發(fā)一個(gè)項(xiàng)目,在正式release之前你可能需要臨時(shí)發(fā)布一個(gè)版本給其他同事使用,?因?yàn)橥乱舱谝蕾嚹愕哪K開發(fā),?那么這個(gè)時(shí)候就可以發(fā)布Snapshot版本到這個(gè)倉(cāng)庫(kù),?同事就可以通過(guò)簡(jiǎn)單的命令來(lái)獲取和使用這個(gè)臨時(shí)版本.
3rd?Party:?顧名思義,?第三方庫(kù),?這里的是指可以添加自己的第三方庫(kù),?比如有些構(gòu)件在中央倉(cāng)庫(kù)是不存在的.?比如在中央倉(cāng)庫(kù)找不到Oracle?的JDBC驅(qū)動(dòng),?這個(gè)時(shí)候就需要自己添加到3rd?party倉(cāng)庫(kù).