唐山網(wǎng)站建設(shè)費(fèi)用seo排名公司
一、Nexus3
上篇文章實(shí)驗(yàn)了使用Nexus3
搭建私服 docker
倉(cāng)庫(kù)及代理倉(cāng)庫(kù),本篇文章繼續(xù)使用 Nexus3
搭建私服maven
倉(cāng)庫(kù),有關(guān) Nexus3
的安裝請(qǐng)參考上篇博客:
https://blog.csdn.net/qq_43692950/article/details/125471729
下面開始實(shí)驗(yàn) maven
私服的搭建:
二、搭建maven 私服倉(cāng)庫(kù)
在 Nexus3
安裝完畢后,細(xì)心的小伙伴應(yīng)該可以看出,Nexus3
已經(jīng)幫我們搭建好了一套 maven 私服:
其中 proxy、hosted、group
和上篇文章搭建 docker
私服中的概念是一樣的:
-
proxy
(代理倉(cāng)庫(kù)):用來代理遠(yuǎn)程的公共倉(cāng)庫(kù),默認(rèn)是從遠(yuǎn)程中央倉(cāng)庫(kù)中尋找數(shù)據(jù)的倉(cāng)庫(kù)下載需要的 jar 包。 -
hosted
(宿主倉(cāng)庫(kù)):用來部署我們自己項(xiàng)目打包的構(gòu)建,供內(nèi)部人員下載。 -
group
(倉(cāng)庫(kù)組):用來合并多個(gè)hosted/proxy倉(cāng)庫(kù),都加入到一個(gè)倉(cāng)庫(kù)組中,提供統(tǒng)一的訪問地址,下載時(shí)按配置順序從中依次查找。
這里為了更細(xì)致的實(shí)驗(yàn),就不使用 Nexus3 自帶的 maven 倉(cāng)庫(kù)了,我們自己創(chuàng)建proxy、hosted、group
三種類型的倉(cāng)庫(kù),其中 proxy
我們代理阿里云的maven
倉(cāng)庫(kù)。
在開始前同樣創(chuàng)建三個(gè) Blob Stores
:
1. proxy 類型倉(cāng)庫(kù)
點(diǎn)擊 Create repositories
,選擇 proxy
類型的 maven
倉(cāng)庫(kù):
然后將 版本選為 Release
,每次都拉取已發(fā)布依賴,下面代理地址填寫 阿里云的maven
倉(cāng)庫(kù)地址:https://maven.aliyun.com/nexus/content/groups/public/
然后 Blob Store 選中上面創(chuàng)建的:
最后點(diǎn)擊 Create repositories
完成創(chuàng)建。
2. hosted 類型倉(cāng)庫(kù)
點(diǎn)擊 Create repositories
,選擇 hosted
類型的 maven
倉(cāng)庫(kù):
將版本同樣選為 Release
,表示該倉(cāng)庫(kù)中的是已發(fā)布的依賴, Blob Store 同樣選中上面創(chuàng)建的:
最后點(diǎn)擊 Create repositories
完成創(chuàng)建。
3. group 類型倉(cāng)庫(kù)
點(diǎn)擊 Create repositories
,選擇 group
類型的 maven
倉(cāng)庫(kù):
將版本同樣選為 Release
, Blob Store 同樣選中上面創(chuàng)建的:
然后下面的分組需要將上面創(chuàng)建的兩個(gè)倉(cāng)庫(kù)加上,注意順序,在拉取依賴的時(shí)候是根據(jù)這個(gè)順序從上往下進(jìn)行的:
最后點(diǎn)擊 Create repositories
完成創(chuàng)建。
現(xiàn)在就完成了 maven 私服的創(chuàng)建,下面開始進(jìn)行測(cè)試。
三、客戶端測(cè)試
maven
配置遠(yuǎn)程倉(cāng)庫(kù)的方式有兩種,一種是在 項(xiàng)目的 pom.xml
中添加 repository
指定遠(yuǎn)程倉(cāng)庫(kù)的地址,一種是在 setting.xml
中添加鏡像的方式指定遠(yuǎn)程倉(cāng)庫(kù)。這兩種方式都需要在 setting.xml
添加 server
標(biāo)簽指定遠(yuǎn)程倉(cāng)庫(kù)的用戶名和密碼,下面分別進(jìn)行演示:
1. pom.xml 方式 下載依賴
首先創(chuàng)建一個(gè)普通的 maven 項(xiàng)目,在 pom 中添加下面配置:
<repositories><repository><id>maven-nexus</id><url>http://192.168.40.171:8081/repository/mvn-group/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository>
</repositories>
其中上面的 url 可以在 nexus3
的web
界面中看到:
因?yàn)?code>nexus3是需要用戶名和密碼才能訪問,在setting.xml
中添加如下配置:
<server><id>maven-nexus</id><username>admin</username><password>nexus</password>
</server>
注意上面的 id
一定要和 pom
中 id
一致!
下面添加一個(gè)依賴,看是否從nexus3
中拉取,拉取前確保本地的 mavne 倉(cāng)庫(kù)中沒有該依賴:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version>
</dependency>
然后可以對(duì)項(xiàng)目 mvn compile
編譯下:
可以看到已經(jīng)從我們的 maven 私服中拉取依賴,還可以在 Nexus3 的web 頁(yè)面中進(jìn)行查看:
2. 鏡像方式 下載依賴
在 setting.xml
中添加依賴配置:
<mirror><id>mirror-nexus</id><name>nexus-mirror</name><url>http://192.168.40.171:8081/repository/mvn-group/</url><mirrorOf>*</mirrorOf>
</mirror>
同樣 還需要添加用戶信息,注意 id 保持一致:
<server><id>mirror-nexus</id><username>admin</username><password>nexus</password>
</server>
下面將項(xiàng)目中 pom 中的倉(cāng)庫(kù)去除,同時(shí)將本地倉(cāng)庫(kù)中上面下載的依賴也刪除掉,然后再次編譯項(xiàng)目:
同樣去 私服中進(jìn)行下載 。
3. 上傳 release 版本依賴
在上傳依賴時(shí)需要注意的是,上面我們創(chuàng)建的 hosted
類型的倉(cāng)庫(kù),版本是選擇的 release
,如果項(xiàng)目中的版本帶有 -SNAPSHOT
則會(huì)上傳失敗,因此首先將項(xiàng)目中的 -SNAPSHOT
刪除,這樣就可以上傳至我們創(chuàng)建的 mvn-hosted
倉(cāng)庫(kù)中:
在 pom 中添加配置:
<distributionManagement><repository><id>nexus-release</id><url>http://192.168.40.171:8081/repository/mvn-hosted/</url><name>nexus-release</name></repository><snapshotRepository><id>nexus-snapshot</id><url>http://192.168.40.171:8081/repository/maven-snapshots/</url><name>nexus-snapshot</name></snapshotRepository></distributionManagement>
其中 release
發(fā)布到上面我們自己創(chuàng)建的 mvn-hosted
中,snapshot
版本就發(fā)布到原來 Nexus3
幫我們默認(rèn)創(chuàng)建好的 maven-snapshots
中。
下面同樣需要在 setting.xml
中添加用戶信息:
<server><id>nexus-release</id><username>admin</username><password>nexus</password>
</server><server><id>nexus-snapshot</id><username>admin</username><password>nexus</password>
</server>
下面使用 mvn deploy
上傳依賴:
在 Nexus3 中查看:
4. 上傳 snapshot 版本依賴
上傳snapshot
版本依賴,只需在版本中添加 -SNAPSHOT
后綴:
然后 使用 mvn deploy
上傳依賴:
在 Nexus3 中查看:
5. 手動(dòng)上傳 jar 包
手動(dòng)上傳 jar 包,可以通過 Nexus3 web 頁(yè)面提供的入口:
選中要上傳的倉(cāng)庫(kù),需要輸入 必要參數(shù):
查看上傳的 依賴:
6. 使用命令上傳 jar 包
mvn deploy:deploy-file -DgroupId=com.example -DartifactId=test-demo2 -Dversion=2.0 -Dpackaging=jar -Dfile=C:/Users/Administrator/Desktop/test-demo2-0.0.1.jar -Durl=http://192.168.40.171:8081/repository/mvn-hosted/ -DrepositoryId=nexus-release
其中:
- DgroupId: 分組
- DartifactId: 工程id
- Dversion:版本
- Dpackaging :依賴類型
- Dfile:文件目錄
- Durl:遠(yuǎn)程倉(cāng)庫(kù)地址
- DrepositoryId:用戶配置id,需對(duì)應(yīng)
setting.xml
中的server
中的id
查看上傳的 依賴: