Linux搭建自己Nexus私服的實現(xiàn)方法
本文介紹如何在Linux服務(wù)器通過Docker搭建Nexus私服
一、安裝Nexus
1、創(chuàng)建存放數(shù)據(jù)的位置
# 進(jìn)入個目錄,這個你們隨便 cd /srv # 創(chuàng)建個文件夾 mkdir nexus-data # 賦予權(quán)限,不然啟動會報錯,無操作權(quán)限 chmod 777 nexus-data
2、啟動
執(zhí)行以下命令即可,會自動拉取鏡像并啟動
docker run -d -p 8081:8081 --name nexus -v /srv/nexus-data:/nexus-data --restart=always sonatype/nexus3
通過docker logs -f nexus
查看啟動日志,當(dāng)出現(xiàn)Started Sonatype Nexus OSS
說明啟動成功,這時通過http://ip:8081
即可訪問
點擊右上角Sign in進(jìn)行登錄,賬號為admin
,密碼需要去鏡像中查看
# 進(jìn)入鏡像 docker exec -it nexus bash # 查看密碼,路徑在登錄框會提示,然后復(fù)制即可,登陸成功后會讓你修改密碼 cat /nexus-data/admin-password
至此,就啟動完成了,進(jìn)入主頁后點擊左邊菜單欄的Browse
即可查看你擁有的倉庫啦
二、Nexus倉庫
1、倉庫類型
Nexus有四種倉庫和四種倉庫類型
a、倉庫
倉庫名 | 描述 |
---|---|
maven-central | maven中央庫,默認(rèn)從https://repo1.maven.org/maven2/拉取jar |
maven-releases | 私庫發(fā)行版jar |
maven-snapshots | 私庫快照(調(diào)試版本)jar |
maven-public | 倉庫分組,把上面三個倉庫組合在一起對外提供服務(wù),在本地maven基礎(chǔ)配置settings.xml中使用 |
b、類型
類型 | 描述 |
---|---|
group(倉庫組類型) | 用于方便開發(fā)人員自己設(shè)定的倉庫 |
hosted(宿主類型) | 內(nèi)部項目的發(fā)布倉庫(內(nèi)部開發(fā)人員,發(fā)布上去存放的倉庫) |
proxy(代理類型) | 從遠(yuǎn)程中央倉庫中尋找數(shù)據(jù)的倉庫(可以點擊對應(yīng)的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠(yuǎn)程倉庫的路徑) |
virtual(虛擬類型) | 虛擬倉庫(這個基本用不到,重點關(guān)注上面三個倉庫的使用) |
2、拉取jar包流程
Maven可直接從宿主倉庫下載構(gòu)件,也可以從代理倉庫下載構(gòu)件,而代理倉庫間接的從遠(yuǎn)程倉庫下載并緩存構(gòu)件,為了方便,Maven可以從倉庫組下載構(gòu)件,而倉庫組并沒有實際的內(nèi)容(下圖中用虛線表示,它會轉(zhuǎn)向包含的宿主倉庫或者代理倉庫獲得實際構(gòu)件的內(nèi)容)
3、創(chuàng)建倉庫
進(jìn)過上面的講解,我們對倉庫已經(jīng)有了了解,接下來我們進(jìn)行創(chuàng)建倉庫,分為是代理倉庫(proxy)
、宿主倉庫(hosted)
、倉庫組(group)
,點擊主頁上面的小螺絲然后在選擇Repositories
進(jìn)入倉庫管理列表,然后就可以開始創(chuàng)建我們的倉庫啦,選擇倉庫類型的時候一定要選擇maven2
a、proxy代理倉庫
我們使用阿里的中央倉庫
b、hosted宿主倉庫
這里可以創(chuàng)建releases
和snapshot
類型的倉庫,這里就演示一種
c、group倉庫組
三、項目配置
前兩章走完我們已經(jīng)在Linux服務(wù)器部署好了nexus并且創(chuàng)建好了我們的倉庫,接下來我們就來試著在項目中配置
1、創(chuàng)建一個Maven項目
為了演示,就隨便創(chuàng)建個工具類玩,以下是目錄結(jié)構(gòu)
2、pom文件
這里為了演示我就配了release
倉庫,實際上應(yīng)該同時要配置snapshot
倉庫,maven會判斷版本后面是否帶了-SNAPSHOT
,如果帶了就發(fā)布到snapshots倉庫,否則發(fā)布到release倉庫
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.gjing</groupId> <artifactId>demo</artifactId> <version>1.0</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <distributionManagement> <repository> <!--ID可以隨便寫,但是要與maven的setting文件中一致--> <id>releases</id> <!--指向倉庫類型為hosted(宿主倉庫)的儲存類型為Release的倉庫----> <url>http://你nexus倉庫的IP:8081/repository/me-release/</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </build> </project>
3、maven配置setting文件
id一定要和項目pom文件中的一致
<servers> <server> <id>releases</id><!--對應(yīng)項目pom文件中設(shè)置的--> <username>admin</username> <password>admin123</password> </server> </servers>
四、發(fā)布
如果使用的是IDEA開發(fā)工具可以直接在右邊工具欄Maven工具點擊deploy,也可以直接在命令行進(jìn)入本項目根目錄進(jìn)行mvn deploy
這時nexus私服上也會出現(xiàn)我們的jar包
到此就發(fā)布成功啦
五、使用
讓maven項目使用nexus作為遠(yuǎn)程倉庫有兩種方式,第一種是在項目的pom.xml中進(jìn)行更改,讓單個項目使用nexus倉庫;另一種是通過修改maven的配置文件settings.xml進(jìn)行更改,讓所有項目都使用nexus倉庫。我們這里采取第二種,只需要setting.xml就可以了。還有就是拉取jar的私服倉庫地址只要寫我們的倉庫組就ok,因為在創(chuàng)建這個組的時候,里面已經(jīng)包含了其它三個倉庫
1、settings.xml文件
在maven的settings文件中找到mirrors
,加上我們組倉庫的mirror
,url填寫我們創(chuàng)建的組地址即可,id、name可以隨便填寫,mirrorOf可以和我寫一樣的
<mirrors> <mirror> <id>mynexus</id> <name>myself nexus repository</name> <url>http://xxx:8081/repository/me-group/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
2、驗證
只需要在其他項目中pom文件引入即可,成功引入且在項目中可以正常使用我們剛剛定義的工具類
到此整個流程就結(jié)束啦,如果有任何問題可以在評論區(qū)告訴我哦!!!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
阿里云服務(wù)器ping不通解決辦法(云服務(wù)器搭建完環(huán)境訪問不了ip解決辦法)
這篇文章主要介紹了阿里云服務(wù)器ping不通解決辦法(云服務(wù)器搭建完環(huán)境訪問不了ip解決辦法),文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2007-05-05CentOS上搭建Nginx+Mono運行asp.net環(huán)境的配置方法
這篇文章主要介紹了CentOS上搭建Nginx+Mono運行asp.net環(huán)境的配置方法,需要的朋友可以參考下2017-03-03Linux進(jìn)程網(wǎng)絡(luò)流量統(tǒng)計的實現(xiàn)過程
這篇文章主要介紹了Linux進(jìn)程網(wǎng)絡(luò)流量統(tǒng)計的實現(xiàn)過程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09Linux環(huán)境下Apache開啟https服務(wù)的方法詳解
這篇文章主要介紹了Linux環(huán)境下Apache開啟https服務(wù)的方法,結(jié)合實例形式分析了阿里云環(huán)境下獲取SSL證書及Apache服務(wù)器安裝、開啟SSL的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07Linux文件服務(wù)器實戰(zhàn)詳解(系統(tǒng)用戶)
這篇文章主要介紹了Linux文件服務(wù)器實戰(zhàn)詳解(系統(tǒng)用戶),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-06-06