使用Nexus搭建Maven私服教程的方法步驟
一、基本介紹(Nexus(maven私服))
1,如果沒有搭建私服會有什么問題?
- 如果沒有私服,我們所需的所有構(gòu)件都需要通過 Maven 的中央倉庫或者第三方的 Maven 倉庫下載到本地,而一個團隊中的所有人都重復(fù)的從 Maven 倉庫下載構(gòu)件無疑加大了倉庫的負(fù)載和浪費了外網(wǎng)帶寬,如果網(wǎng)速慢的話,還會影響項目的進程。
- 另外,很多情況下項目的開發(fā)都是在內(nèi)網(wǎng)進行的,可能根本連接不了 Maven 的中央倉庫和第三方的 Maven 倉庫。
- 我們開發(fā)的公共構(gòu)件如果需要提供給其它項目使用,也需要搭建私服。
2,搭建私服的優(yōu)點
Maven 私服的概念就是在本地架設(shè)一個 Maven 倉庫服務(wù)器,在代理遠程倉庫的同時維護本地倉庫。當(dāng)我們需要下載一些構(gòu)件(artifact)時,如果本地倉庫沒有,再去私服下載,私服沒有,再去中央倉庫下載。這樣做會有如下一些優(yōu)點:
- 減少網(wǎng)絡(luò)帶寬流量
- 加速 Maven 構(gòu)建
- 部署第三方構(gòu)件
- 提高穩(wěn)定性、增強控制
- 降低中央倉庫的負(fù)載
3,Nexus 介紹
Nexus 是一個專門的 Maven 倉庫管理軟件,它不僅能搭建 Maven 私服,還具備如下一些優(yōu)點使其日趨成為最流行的 Maven 倉庫管理器:
- 提供了強大的倉庫管理功能,構(gòu)件搜索功能
- 它基于 REST,友好的 UI 是一個 ext.js 的 REST 客戶端
- 它占用較少的內(nèi)存
- 基于簡單文件系統(tǒng)而非數(shù)據(jù)庫
我的理解:平時我們用的是阿里的共用maven服務(wù)器,但是在公司時,我們需要用到公司自研的jar包,這些jar包是私有的,所以在阿里的共用maven服務(wù)器中找不到,雖然我們也可以那個u盤來拷貝公司的私有jar包,但公司人這么多,一個個拷貝就太慢了,可以使用nexus搭建一個公司的私服,只需要連接公司的內(nèi)網(wǎng),配置好maven的settings.xml就可以在nexus中下載自己需要的jar包了
二、Nexus 服務(wù)的安裝(推薦第二種:使用docker方式安裝)
Nexus 既可以使用傳統(tǒng)的二進制包進行安裝,也可以使用 Docker 容器的方式進行安裝運行。下面分別介紹這兩種方法。
1,使用二進制發(fā)行包安裝
(1)首先確保系統(tǒng) JDK 環(huán)境,具體安裝步驟可以參考我之前寫的文章:
(2)接著我們訪問 Nexus 官網(wǎng)(點擊訪問),點擊“GET REPOSITORY OSS”按鈕打開下載頁面:
(3)根據(jù)環(huán)境選擇下載相應(yīng)的版本,比如我這里下載 Linux 版本的安裝包。
(4)將下載下來的壓縮包上傳到服務(wù)器(比如 /usr/local 目錄下),然后進行解壓:
tar -zxf nexus-3.21.2-03-unix.tar.gz
5)解壓后會得到兩個文件夾:nexus-3.21.2-03(nexus 服務(wù)目錄)、sonatype-work(私有庫目錄)
(6)進入 nexus-3.21.2-03 文件夾,其中 etc/nexus-default.properties 文件配置端口(默認(rèn)為 8081)和 work 目錄信息,我們可以按需修改。
cd nexus-3.21.2-03``cat etc/nexus-``default``.properties
(7)然后執(zhí)行如下命令開放 8081 端口:
firewall-cmd --permanent --add-port=``8081``/tcp``firewall-cmd --reload
(8)最后執(zhí)行如下命令啟動服務(wù)即可:
cd bin``./nexus start
2,使用 Docker 鏡像進行安裝(推薦)
(1)首先執(zhí)行如下命令下載 Nexus3 鏡像:
docker pull sonatype/nexus3
(2)接著執(zhí)行如下命令,創(chuàng)建宿主機掛載目錄:
mkdir` `–vp /usr/local/nexus-data
(3)最后執(zhí)行如下命令運行 Nexus3 容器即可:
docker run -d --name nexus3 -p 8081:8081 -v /usr/local/nexus-data:/``var``/nexus-data sonatype/nexus3
(4)同樣不要忘記執(zhí)行如下命令開放 8081 端口:
firewall-cmd --permanent --add-port=``8081``/tcp``firewall-cmd --reload
三、Nexus 服務(wù)的配置
(1)Nexus 服務(wù)啟動以后,我們使用瀏覽器訪問 http://IP:8081/,點擊右上角登錄按鈕:
(2)首次登錄會提示密碼保存在 /usr/local/sonatype-work/nexus3/admin.password 文件中,我們查看服務(wù)器上這個文件內(nèi)容,然后作為密碼登錄:
(3)登錄后會讓我們設(shè)置新的密碼(這里我設(shè)置為 123):
(4)登錄后的界面如下:
(1)默認(rèn)倉庫說明:
maven-central:maven 中央庫,默認(rèn)從 https://repo1.maven.org/maven2/ 拉取 jarmaven-releases:私庫發(fā)行版 jar,初次安裝請將 Deployment policy 設(shè)置為 Allow redeploymaven-snapshots:私庫快照(調(diào)試版本)jarmaven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務(wù),在本地 maven 基礎(chǔ)配置 settings.xml 或項目 pom.xml 中使用(2)倉庫類型說明:
group:這是一個倉庫聚合的概念,用戶倉庫地址選擇 Group 的地址,即可訪問 Group 中配置的,用于方便開發(fā)人員自己設(shè)定的倉庫。maven-public 就是一個 Group 類型的倉庫,內(nèi)部設(shè)置了多個倉庫,訪問順序取決于配置順序,3.x 默認(rèn)為 Releases、Snapshots、Central,當(dāng)然你也可以自己設(shè)置。hosted:私有倉庫,內(nèi)部項目的發(fā)布倉庫,專門用來存儲我們自己生成的 jar 文件snapshots:本地項目的快照倉庫releases: 本地項目發(fā)布的正式版本proxy:代理類型,從遠程中央倉庫中尋找數(shù)據(jù)的倉庫(可以點擊對應(yīng)的倉庫的 Configuration 頁簽下 Remote Storage 屬性的值即被代理的遠程倉庫的路徑),如可配置阿里云 maven 倉庫central:中央倉庫
(5)接下來我們增加一個代理倉庫,使用的是阿里云公共倉庫。首先點擊“Create repository”按鈕開始創(chuàng)建一個倉庫:
(6)類型選擇 maven2(proxy):
(7)配置阿里云地址 http://maven.aliyun.com/nexus/content/groups/public/,name 可以隨意填(這里我寫 aliyun-proxy),然后點擊最下方按鈕創(chuàng)建:
(8)阿里云代理倉庫創(chuàng)建完畢后,我們編輯 maven-public,將其添加到放入 group 中,并調(diào)整優(yōu)先級,然后保存:
(9)點擊 maven-public 條目的 copy 按鈕即可拷貝私服地址:
附一:Maven 配置使用私服(下載依賴)
1,基本說明
(1)Maven 配置私服下載有兩種方式:
setting.xml:該文件配置的是全局模式pom.xml:該文件的配置的是項目獨享模式
注意:若 pom.xml 和 setting.xml 同時配置了,以 pom.xml 為準(zhǔn)。
(2)當(dāng)我們在 maven 使用 maven-public 倉庫地址的時候,會按照如下順序訪問:本地倉庫 --> 私服 maven-releases --> 私服 maven-snapshots --> 遠程阿里云 maven 倉庫 --> 遠程中央倉庫。
2,通過 setting.xml 文件配置
(1)setting.xml 文件配置樣例如下。配置后不需要再配置 pom.xml 文件,即可通過私服下載 jar 依賴包。
<mirrors> <mirror> <!--該鏡像的唯一標(biāo)識符。id用來區(qū)分不同的mirror元素。 --> <id>maven-public</id> <!--鏡像名稱 --> <name>maven-public</name> <!--*指的是訪問任何倉庫都使用我們的私服--> <mirrorOf>*</mirrorOf> <!--該鏡像的URL。構(gòu)建系統(tǒng)會優(yōu)先考慮使用該URL,而非使用默認(rèn)的服務(wù)器URL。 --> <url>http://192.168.60.133:8081/repository/maven-public/</url> </mirror> </mirrors>
(2)如果我們并沒有搭建私服,屬于個人開發(fā),那么也可以直接配置使用阿里 云maven 倉庫:
<mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
3,通過 pom.xml 文件配置
(1)pom.xml 文件配置樣例如下。如果我們配置了 pom.xml,則以 pom.xml 為準(zhǔn)。
<repositories> <repository> <id>maven-nexus</id> <name>maven-nexus</name> <url>http://192.168.60.133:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
(2)如果沒有私服,我們同樣也可以配置阿里云 maven 倉庫:
<repositories> <repository> <id>maven-aliyun</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> </repository> </repositories>
附二:Maven 配置使用私服(下載插件)
下面是一個使用 pom.xml 配置樣例:
<pluginRepositories> <pluginRepository> <id>maven-nexus</id> <name>maven-nexus</name> <url>http://10.172.0.201:8081/nexus/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
附三:Maven 配置使用私服(發(fā)布依賴)
(1)首先修改 setting.xml 文件,指定 releases 和 snapshots server 的用戶名和密碼:
<servers> <server> <id>releases</id> <username>admin</username> <password>123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>123</password> </server> </servers>
(2)接著在項目的 pom.xml 文件中加入 distributionManagement 節(jié)點:
注意:repository 里的 id 需要和上一步里的 server id 名稱保持一致。
<distributionManagement> <repository> <id>releases</id> <name>Releases</name> <url>http://192.168.60.133:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <name>Snapshot</name> <url>http://192.168.60.133:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
(3)執(zhí)行 mvn deploy 命令發(fā)布:
(4)登錄 Nexus,查看對應(yīng)的倉庫已經(jīng)有相關(guān)的依賴包了。
發(fā)布到的倉庫說明:
若項目版本號末尾帶有 -SNAPSHOT,則會發(fā)布到 snapshots 快照版本倉庫若項目版本號末尾帶有 -RELEASES 或什么都不帶,則會發(fā)布到 releases 正式版本倉庫
到此這篇關(guān)于使用Nexus搭建Maven私服教程的方法步驟的文章就介紹到這了,更多相關(guān)Nexus搭建Maven私服內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Maven nexus 安裝nexus私服出現(xiàn)的問題和解決辦法
- 詳解Maven私服Nexus的安裝與使用
- 如何使用nexus在局域網(wǎng)內(nèi)搭建maven私服及idea的使用
- Maven入門之使用Nexus搭建Maven私服及上傳下載jar包
- 使用Nexus搭建Maven私服的方法步驟
- maven將項目打包上傳到nexus私服的詳細(xì)教程
- 詳解idea maven nexus 常見命令配置
- 利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服
- Maven配置單倉庫與多倉庫的實現(xiàn)(Nexus)
- Maven發(fā)布項目到Nexus私有服務(wù)器
- Python實現(xiàn)批量上傳本地maven庫到nexus
- Maven使用Nexus創(chuàng)建私服的實現(xiàn)
- Maven忽略單元測試及打包到Nexus的實現(xiàn)
- maven私有鏡像倉庫nexus部署使用
相關(guān)文章
Spring 校驗(validator,JSR-303)簡單實現(xiàn)方式
這篇文章主要介紹了Spring 校驗(validator,JSR-303)簡單實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10java理論基礎(chǔ)Stream API終端操作示例解析
這篇文章主要為大家介紹了java理論基礎(chǔ)Stream API終端操作示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03Java如何向Word模板中插入Base64圖片和數(shù)據(jù)信息
這篇文章主要介紹了Java如何向Word模板中插入Base64圖片和數(shù)據(jù)信息問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07SpringSecurityOAuth2實現(xiàn)微信授權(quán)登錄
微信的登錄功能是用戶注冊和使用微信的必經(jīng)之路之一,而微信授權(quán)登錄更是方便了用戶的登錄操作,本文主要介紹了SpringSecurityOAuth2實現(xiàn)微信授權(quán)登錄,感興趣的可以了解一下2023-09-09