Linux搭建自己Nexus私服的實(shí)現(xiàn)方法
本文介紹如何在Linux服務(wù)器通過(guò)Docker搭建Nexus私服
一、安裝Nexus
1、創(chuàng)建存放數(shù)據(jù)的位置
# 進(jìn)入個(gè)目錄,這個(gè)你們隨便 cd /srv # 創(chuàng)建個(gè)文件夾 mkdir nexus-data # 賦予權(quán)限,不然啟動(dòng)會(huì)報(bào)錯(cuò),無(wú)操作權(quán)限 chmod 777 nexus-data
2、啟動(dòng)
執(zhí)行以下命令即可,會(huì)自動(dòng)拉取鏡像并啟動(dòng)
docker run -d -p 8081:8081 --name nexus -v /srv/nexus-data:/nexus-data --restart=always sonatype/nexus3
通過(guò)docker logs -f nexus查看啟動(dòng)日志,當(dāng)出現(xiàn)Started Sonatype Nexus OSS說(shuō)明啟動(dòng)成功,這時(shí)通過(guò)http://ip:8081即可訪問(wèn)

點(diǎn)擊右上角Sign in進(jìn)行登錄,賬號(hào)為admin,密碼需要去鏡像中查看
# 進(jìn)入鏡像 docker exec -it nexus bash # 查看密碼,路徑在登錄框會(huì)提示,然后復(fù)制即可,登陸成功后會(huì)讓你修改密碼 cat /nexus-data/admin-password
至此,就啟動(dòng)完成了,進(jìn)入主頁(yè)后點(diǎn)擊左邊菜單欄的Browse即可查看你擁有的倉(cāng)庫(kù)啦
二、Nexus倉(cāng)庫(kù)
1、倉(cāng)庫(kù)類型
Nexus有四種倉(cāng)庫(kù)和四種倉(cāng)庫(kù)類型
a、倉(cāng)庫(kù)
| 倉(cāng)庫(kù)名 | 描述 |
|---|---|
| maven-central | maven中央庫(kù),默認(rèn)從https://repo1.maven.org/maven2/拉取jar |
| maven-releases | 私庫(kù)發(fā)行版jar |
| maven-snapshots | 私庫(kù)快照(調(diào)試版本)jar |
| maven-public | 倉(cāng)庫(kù)分組,把上面三個(gè)倉(cāng)庫(kù)組合在一起對(duì)外提供服務(wù),在本地maven基礎(chǔ)配置settings.xml中使用 |
b、類型
| 類型 | 描述 |
|---|---|
| group(倉(cāng)庫(kù)組類型) | 用于方便開發(fā)人員自己設(shè)定的倉(cāng)庫(kù) |
| hosted(宿主類型) | 內(nèi)部項(xiàng)目的發(fā)布倉(cāng)庫(kù)(內(nèi)部開發(fā)人員,發(fā)布上去存放的倉(cāng)庫(kù)) |
| proxy(代理類型) | 從遠(yuǎn)程中央倉(cāng)庫(kù)中尋找數(shù)據(jù)的倉(cāng)庫(kù)(可以點(diǎn)擊對(duì)應(yīng)的倉(cāng)庫(kù)的Configuration頁(yè)簽下Remote Storage Location屬性的值即被代理的遠(yuǎn)程倉(cāng)庫(kù)的路徑) |
| virtual(虛擬類型) | 虛擬倉(cāng)庫(kù)(這個(gè)基本用不到,重點(diǎn)關(guān)注上面三個(gè)倉(cāng)庫(kù)的使用) |
2、拉取jar包流程
Maven可直接從宿主倉(cāng)庫(kù)下載構(gòu)件,也可以從代理倉(cāng)庫(kù)下載構(gòu)件,而代理倉(cāng)庫(kù)間接的從遠(yuǎn)程倉(cāng)庫(kù)下載并緩存構(gòu)件,為了方便,Maven可以從倉(cāng)庫(kù)組下載構(gòu)件,而倉(cāng)庫(kù)組并沒(méi)有實(shí)際的內(nèi)容(下圖中用虛線表示,它會(huì)轉(zhuǎn)向包含的宿主倉(cāng)庫(kù)或者代理倉(cāng)庫(kù)獲得實(shí)際構(gòu)件的內(nèi)容)

3、創(chuàng)建倉(cāng)庫(kù)
進(jìn)過(guò)上面的講解,我們對(duì)倉(cāng)庫(kù)已經(jīng)有了了解,接下來(lái)我們進(jìn)行創(chuàng)建倉(cāng)庫(kù),分為是代理倉(cāng)庫(kù)(proxy)、宿主倉(cāng)庫(kù)(hosted)、倉(cāng)庫(kù)組(group),點(diǎn)擊主頁(yè)上面的小螺絲然后在選擇Repositories進(jìn)入倉(cāng)庫(kù)管理列表,然后就可以開始創(chuàng)建我們的倉(cāng)庫(kù)啦,選擇倉(cāng)庫(kù)類型的時(shí)候一定要選擇maven2
a、proxy代理倉(cāng)庫(kù)
我們使用阿里的中央倉(cāng)庫(kù)

b、hosted宿主倉(cāng)庫(kù)
這里可以創(chuàng)建releases和snapshot類型的倉(cāng)庫(kù),這里就演示一種

c、group倉(cāng)庫(kù)組

三、項(xiàng)目配置
前兩章走完我們已經(jīng)在Linux服務(wù)器部署好了nexus并且創(chuàng)建好了我們的倉(cāng)庫(kù),接下來(lái)我們就來(lái)試著在項(xiàng)目中配置
1、創(chuàng)建一個(gè)Maven項(xiàng)目
為了演示,就隨便創(chuàng)建個(gè)工具類玩,以下是目錄結(jié)構(gòu)

2、pom文件
這里為了演示我就配了release倉(cāng)庫(kù),實(shí)際上應(yīng)該同時(shí)要配置snapshot倉(cāng)庫(kù),maven會(huì)判斷版本后面是否帶了-SNAPSHOT,如果帶了就發(fā)布到snapshots倉(cāng)庫(kù),否則發(fā)布到release倉(cāng)庫(kù)
<?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>
<!--指向倉(cāng)庫(kù)類型為hosted(宿主倉(cāng)庫(kù))的儲(chǔ)存類型為Release的倉(cāng)庫(kù)---->
<url>http://你nexus倉(cāng)庫(kù)的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一定要和項(xiàng)目pom文件中的一致
<servers> <server> <id>releases</id><!--對(duì)應(yīng)項(xiàng)目pom文件中設(shè)置的--> <username>admin</username> <password>admin123</password> </server> </servers>
四、發(fā)布
如果使用的是IDEA開發(fā)工具可以直接在右邊工具欄Maven工具點(diǎn)擊deploy,也可以直接在命令行進(jìn)入本項(xiàng)目根目錄進(jìn)行mvn deploy

這時(shí)nexus私服上也會(huì)出現(xiàn)我們的jar包

到此就發(fā)布成功啦
五、使用
讓maven項(xiàng)目使用nexus作為遠(yuǎn)程倉(cāng)庫(kù)有兩種方式,第一種是在項(xiàng)目的pom.xml中進(jìn)行更改,讓單個(gè)項(xiàng)目使用nexus倉(cāng)庫(kù);另一種是通過(guò)修改maven的配置文件settings.xml進(jìn)行更改,讓所有項(xiàng)目都使用nexus倉(cāng)庫(kù)。我們這里采取第二種,只需要setting.xml就可以了。還有就是拉取jar的私服倉(cāng)庫(kù)地址只要寫我們的倉(cāng)庫(kù)組就ok,因?yàn)樵趧?chuàng)建這個(gè)組的時(shí)候,里面已經(jīng)包含了其它三個(gè)倉(cāng)庫(kù)
1、settings.xml文件
在maven的settings文件中找到mirrors,加上我們組倉(cāng)庫(kù)的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、驗(yàn)證
只需要在其他項(xiàng)目中pom文件引入即可,成功引入且在項(xiàng)目中可以正常使用我們剛剛定義的工具類

到此整個(gè)流程就結(jié)束啦,如果有任何問(wèn)題可以在評(píng)論區(qū)告訴我哦!!!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于cobbler 實(shí)現(xiàn)自動(dòng)安裝linux系統(tǒng)
這篇文章主要介紹了cobbler 自動(dòng)安裝linux系統(tǒng)的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
Linux服務(wù)器間文件實(shí)時(shí)同步的實(shí)現(xiàn)
這篇文章主要介紹了Linux服務(wù)器間文件實(shí)時(shí)同步的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
linux下多個(gè)硬盤劃分到同一掛載點(diǎn)問(wèn)題
在Linux系統(tǒng)中,將多個(gè)硬盤劃分到同一掛載點(diǎn)需要通過(guò)邏輯卷管理(LVM)來(lái)實(shí)現(xiàn),首先,需要將物理存儲(chǔ)設(shè)備(如硬盤分區(qū))創(chuàng)建為物理卷,然后,將這些物理卷組成邏輯卷組,接著,從邏輯卷組中劃分出邏輯卷,并進(jìn)行格式化和掛載2025-02-02
Linux命令搜索命令whereis與which的區(qū)別
這篇文章主要介紹了Linux命令搜索命令whereis與which的區(qū)別的相關(guān)資料,這里舉例說(shuō)明該如何區(qū)別他們之家的用法,需要的朋友可以參考下2017-08-08
CentOS 5.11服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)
這篇文章主要介紹了CentOS 5.11服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL),需要的朋友可以參考下2016-10-10
Centos7學(xué)習(xí)之添加用戶和用戶組的方法
本篇文章主要介紹了Centos7學(xué)習(xí)之添加用戶和用戶組的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09

