Nexus倉(cāng)庫(kù)介紹(支持maven、yum、docker私服等)
倉(cāng)庫(kù)分為三種:
proxy:是遠(yuǎn)程倉(cāng)庫(kù)的代理。比如說(shuō)在nexus中配置了一個(gè)central repository的proxy,當(dāng)用戶向這個(gè)proxy請(qǐng)求一個(gè)artifact,這個(gè)proxy就會(huì)先在本地查找,如果找不到的話,就會(huì)從遠(yuǎn)程倉(cāng)庫(kù)下載,然后返回給用戶,相當(dāng)于起到一個(gè)中轉(zhuǎn)的作用;
Hosted:是宿主倉(cāng)庫(kù),用戶可以把自己的一些構(gòu)件,deploy到hosted中,也可以手工上傳構(gòu)件到hosted里。比如說(shuō)oracle的驅(qū)動(dòng)程序,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted里,一般用來(lái)存放公司自己的jar包;
Group:是倉(cāng)庫(kù)組,在maven里沒(méi)有這個(gè)概念,是nexus特有的。目的是將上述多個(gè)倉(cāng)庫(kù)聚合,對(duì)用戶暴露統(tǒng)一的地址,這樣用戶就不需要在pom中配置多個(gè)地址,只要統(tǒng)一配置group的地址就可以了右邊那個(gè)Repository Path可以點(diǎn)擊進(jìn)去,看到倉(cāng)庫(kù)中artifact列表。不過(guò)要注意瀏覽器緩存,當(dāng)你的項(xiàng)目希望在多個(gè)repository使用資源時(shí)就不需要多次引用了,只需要引用一個(gè)group即可。
maven-public:maven-central、maven-release和maven-snapshot三個(gè)庫(kù)的合集。
maven-release:用來(lái)存放release版本的jar包。
maven-snapshot:用來(lái)存放snapshot版本的jar包。
一、Docker搭建Nexus3(CentOS)
下載鏡像
$?docker pull sonatype/nexus3:latest
創(chuàng)建文件目錄
$?mkdir /data/nexus && chown -R 200 /data/nexus
運(yùn)行鏡像
$docker run --restart=always -d -p 8081:8081 --name nexus3 -v /data/nexus:/nexus-data sonatype/nexus3:latest
默認(rèn)賬號(hào)為admin,默認(rèn)密碼為admin123
如果要是新版本,比如說(shuō)在nexus3中,其密碼已經(jīng)由默認(rèn)改成隨機(jī)生成,查看初始密碼
$docker exec -it nexus3 bash
$cat nexus-data/admin.password
二、搭建Nexus3(Windows)
安裝到服務(wù)
安裝目錄>nexus.exe /install nexus3
三、Nexus3配置說(shuō)明
訪問(wèn):http://ip:8081/ 使用管理員登陸后開始以下操作
1.創(chuàng)建Blob Stores
2.創(chuàng)建倉(cāng)庫(kù)
3.選擇倉(cāng)庫(kù)類型(參考文章開頭倉(cāng)庫(kù)類型說(shuō)明)
4.配置公共出口maven-public(group)
四、使用說(shuō)明
1.配置私服(setting.xml或者項(xiàng)目的pom.xml指定maven私服的maven-public即可)
2.發(fā)布本地項(xiàng)目到Nexus私服,配置連接方式
配置Maven的settings.xml
release
admin
admin123
snapshots
admin
admin123
配置項(xiàng)目的pom.xml
release
user release resp
http://xxx.xxx.xxx.xxx:8081/repository/releases/
snapshots
user snapshots resp
http://xxx.xxx.xxx.xxx:8081/repository/snapshots/</url>