溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

發(fā)布時(shí)間:2021-02-07 14:26:33 來源:億速云 閱讀:239 作者:小新 欄目:服務(wù)器

這篇文章給大家分享的是有關(guān)如何在Linux服務(wù)器通過Docker搭建Nexus私服的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

如何在Linux服務(wù)器通過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ò),無操作權(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

通過docker logs -f nexus查看啟動(dòng)日志,當(dāng)出現(xiàn)Started Sonatype Nexus OSS說明啟動(dòng)成功,這時(shí)通過http://ip:8081即可訪問

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

點(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)入主頁后點(diǎn)擊左邊菜單欄的Browse即可查看你擁有的倉庫啦

二、Nexus倉庫

1、倉庫類型

Nexus有四種倉庫和四種倉庫類型

a、倉庫

倉庫名描述
maven-centralmaven中央庫,默認(rèn)從https://repo1.maven.org/maven2/拉取jar
maven-releases私庫發(fā)行版jar
maven-snapshots私庫快照(調(diào)試版本)jar
maven-public倉庫分組,把上面三個(gè)倉庫組合在一起對外提供服務(wù),在本地maven基礎(chǔ)配置settings.xml中使用

b、類型

類型描述
group(倉庫組類型)用于方便開發(fā)人員自己設(shè)定的倉庫
hosted(宿主類型)內(nèi)部項(xiàng)目的發(fā)布倉庫(內(nèi)部開發(fā)人員,發(fā)布上去存放的倉庫)
proxy(代理類型)從遠(yuǎn)程中央倉庫中尋找數(shù)據(jù)的倉庫(可以點(diǎn)擊對應(yīng)的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠(yuǎn)程倉庫的路徑)
virtual(虛擬類型)虛擬倉庫(這個(gè)基本用不到,重點(diǎn)關(guān)注上面三個(gè)倉庫的使用)

2、拉取jar包流程

Maven可直接從宿主倉庫下載構(gòu)件,也可以從代理倉庫下載構(gòu)件,而代理倉庫間接的從遠(yuǎn)程倉庫下載并緩存構(gòu)件,為了方便,Maven可以從倉庫組下載構(gòu)件,而倉庫組并沒有實(shí)際的內(nèi)容(下圖中用虛線表示,它會(huì)轉(zhuǎn)向包含的宿主倉庫或者代理倉庫獲得實(shí)際構(gòu)件的內(nèi)容)

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

3、創(chuàng)建倉庫

進(jìn)過上面的講解,我們對倉庫已經(jīng)有了了解,接下來我們進(jìn)行創(chuàng)建倉庫,分為是代理倉庫(proxy)、宿主倉庫(hosted)倉庫組(group),點(diǎn)擊主頁上面的小螺絲然后在選擇Repositories進(jìn)入倉庫管理列表,然后就可以開始創(chuàng)建我們的倉庫啦,選擇倉庫類型的時(shí)候一定要選擇maven2

a、proxy代理倉庫

我們使用阿里的中央倉庫

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

b、hosted宿主倉庫

這里可以創(chuàng)建releasessnapshot類型的倉庫,這里就演示一種

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

c、group倉庫組

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

三、項(xiàng)目配置

前兩章走完我們已經(jīng)在Linux服務(wù)器部署好了nexus并且創(chuàng)建好了我們的倉庫,接下來我們就來試著在項(xiàng)目中配置

1、創(chuàng)建一個(gè)Maven項(xiàng)目

為了演示,就隨便創(chuàng)建個(gè)工具類玩,以下是目錄結(jié)構(gòu)

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

2、pom文件

這里為了演示我就配了release倉庫,實(shí)際上應(yīng)該同時(shí)要配置snapshot倉庫,maven會(huì)判斷版本后面是否帶了-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(宿主倉庫)的儲(chǔ)存類型為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一定要和項(xiàng)目pom文件中的一致

 <servers>
 <server>
  <id>releases</id><!--對應(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

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

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

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

到此就發(fā)布成功啦

五、使用

讓maven項(xiàng)目使用nexus作為遠(yuǎn)程倉庫有兩種方式,第一種是在項(xiàng)目的pom.xml中進(jìn)行更改,讓單個(gè)項(xiàng)目使用nexus倉庫;另一種是通過修改maven的配置文件settings.xml進(jìn)行更改,讓所有項(xiàng)目都使用nexus倉庫。我們這里采取第二種,只需要setting.xml就可以了。還有就是拉取jar的私服倉庫地址只要寫我們的倉庫組就ok,因?yàn)樵趧?chuàng)建這個(gè)組的時(shí)候,里面已經(jīng)包含了其它三個(gè)倉庫

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、驗(yàn)證

只需要在其他項(xiàng)目中pom文件引入即可,成功引入且在項(xiàng)目中可以正常使用我們剛剛定義的工具類

?如何在Linux服務(wù)器通過Docker搭建Nexus私服

感謝各位的閱讀!關(guān)于“如何在Linux服務(wù)器通過Docker搭建Nexus私服”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI