AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

研發(fā)提效必備技能:25張圖手把手教你基于Docker搭建Maven私服倉庫

來源: 責(zé)編: 時間:2023-12-21 17:11:21 253觀看
導(dǎo)讀大家好,我是冰河~~在研發(fā)的過程中,很多企業(yè)都會針對自身業(yè)務(wù)特點來定制研發(fā)一些工具類庫,但是這些工具類庫又不會對外公開,那如何在組織內(nèi)部共享這些類庫呢?一種很好的方式就是在公司內(nèi)部搭建一套Maven私服倉庫。搭建Maven

JZM28資訊網(wǎng)——每日最新資訊28at.com

大家好,我是冰河~~JZM28資訊網(wǎng)——每日最新資訊28at.com

在研發(fā)的過程中,很多企業(yè)都會針對自身業(yè)務(wù)特點來定制研發(fā)一些工具類庫,但是這些工具類庫又不會對外公開,那如何在組織內(nèi)部共享這些類庫呢?一種很好的方式就是在公司內(nèi)部搭建一套Maven私服倉庫。JZM28資訊網(wǎng)——每日最新資訊28at.com

搭建Maven私服倉庫可以提高項目構(gòu)建和部署的效率、穩(wěn)定性和安全性,同時方便管理內(nèi)部開發(fā)的組件和私有庫,比較適用于企業(yè)內(nèi)部或者特定場景下的需求。JZM28資訊網(wǎng)——每日最新資訊28at.com

就拿我們星球的分布式IM即時通訊系統(tǒng)來說,對于后端服務(wù),我們將其劃分成了 多系統(tǒng)共用模型與工具、即時通訊后端服務(wù)、大后端平臺、即時通訊SDK、OpenAI大模型接入SDK 等。JZM28資訊網(wǎng)——每日最新資訊28at.com

其中,多系統(tǒng)共用模型與工具會被其他服務(wù)依賴,即時通訊SDK和OpenAI大模型接入SDK也會被其他服務(wù)依賴,并且多系統(tǒng)共用模型與工具、即時通訊SDK和OpenAI大模型接入SDK都是我們開發(fā)分布式IM即時通訊系統(tǒng)時的私有庫和組件,所以,在設(shè)計和研發(fā)分布式IM即時通訊系統(tǒng)的過程中,我們也需要搭建一套自己的Maven私服來統(tǒng)一管理這些私有庫和組件。JZM28資訊網(wǎng)——每日最新資訊28at.com

好了,那接下來,我們就一起搭建Maven私服倉庫吧。JZM28資訊網(wǎng)——每日最新資訊28at.com

二、環(huán)境說明

  • 服務(wù)器版本:CentOS7
  • 主機(jī)名:binghe102
  • IP地址:192.168.106.102
  • Maven私服鏡像:sonatype/nexus3

三、環(huán)境搭建

基于Docker搭建Maven私服的步驟如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

1、下載Nexus3鏡像

在服務(wù)器命令行輸入如下命令,下載Nexus3鏡像。JZM28資訊網(wǎng)——每日最新資訊28at.com

docker pull sonatype/nexus3

這里,視網(wǎng)絡(luò)情況,可能需要耐心等待一會兒。JZM28資訊網(wǎng)——每日最新資訊28at.com

2、查看Nexus3鏡像

在服務(wù)器命令行輸入如下命令,查看下載的Nexus3鏡像。JZM28資訊網(wǎng)——每日最新資訊28at.com

[root@binghe102 ~]# docker imagesREPOSITORY        TAG       IMAGE ID       CREATED         SIZEsonatype/nexus3   latest    589f7296a4a2   23 months ago   655MB

可以看到,已經(jīng)成功下載Nexus3鏡像。JZM28資訊網(wǎng)——每日最新資訊28at.com

3、創(chuàng)建Nexus3掛載文件夾

在服務(wù)器命令行輸入如下命令,創(chuàng)建nexus的掛載文件夾。JZM28資訊網(wǎng)——每日最新資訊28at.com

mkdir /usr/local/nexus-data && chown -R 200 /usr/local/nexus-data

4、啟動Nexus3容器

在服務(wù)器命令行輸入如下命令,啟動Nexus3容器。JZM28資訊網(wǎng)——每日最新資訊28at.com

docker run -d -p 8081:8081 --name nexus -v /usr/local/nexus-data:/nexus-data --restart=always sonatype/nexus3

可以看到,在上述啟動命令中,我們將Nexus3容器的/nexus-data目錄映射到了宿主機(jī)的/usr/local/nexus-data目錄。此時,Nexus3容器運(yùn)行過程中,在/nexus-data目錄產(chǎn)生的文件和日志都會在宿主機(jī)的/usr/local/nexus-data目錄中查看到。JZM28資訊網(wǎng)——每日最新資訊28at.com

5、查看Nexus3容器啟動狀態(tài)

在服務(wù)器命令行輸入如下命令,查看Nexus3容器啟動狀態(tài)。JZM28資訊網(wǎng)——每日最新資訊28at.com

[root@binghe102 ~]# docker psCONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS         PORTS                                       NAMES59e27830bbaa   sonatype/nexus3   "sh -c ${SONATYPE_DI…"   2 minutes ago   Up 2 minutes   0.0.0.0:8081->8081/tcp, :::8081->8081/tcp   nexus

可以看到,Nexus3容器啟動成功,監(jiān)聽了8081端口。JZM28資訊網(wǎng)——每日最新資訊28at.com

四、Nexus3配置

搭建完Nexus3環(huán)境后,我們還需要對其進(jìn)行配置,具體配置的步驟如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

1、打開Nexus3頁面

Nexus3容器啟動時監(jiān)聽的端口和宿主機(jī)端口都是8081,所以,我們在瀏覽器地址欄輸入http://192.168.106.102:8081打開Nexus3頁面,如圖1所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

JZM28資訊網(wǎng)——每日最新資訊28at.com

2、登錄Nexus3

點擊Nexus3右上角的登錄,如圖2所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊后會彈出如圖3所示的提示框。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

根據(jù)提示得知,初始密碼的存放位置為/nexus-data/admin.password,因為我們在啟動Nexus3容器時,將Nexus3容器的/nexus-data目錄映射到了宿主機(jī)的/usr/local/nexus-data目錄,所以,我們在宿主機(jī)的/usr/local/nexus-data目錄中也能夠查詢到admin.password文件。JZM28資訊網(wǎng)——每日最新資訊28at.com

所以,在宿主機(jī)中輸入如下命令即可查看到admin.password文件。JZM28資訊網(wǎng)——每日最新資訊28at.com

ll /usr/local/nexus-data

具體如圖4所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

輸入如下命令查看admin.password文件的內(nèi)容。JZM28資訊網(wǎng)——每日最新資訊28at.com

[root@binghe102 ~]# cat /usr/local/nexus-data/admin.password 517842df-1a2d-49c9-b4c3-b9ad4cf0fe00

此時,我們就查看到登錄Nexus3的admin賬號的密碼為517842df-1a2d-49c9-b4c3-b9ad4cf0fe00,將admin賬號和對應(yīng)的密碼輸入到圖3所示的提示框中,即可登錄Nexus3,如圖5所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

登錄后的界面如圖6所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

可以看到,首次登錄后會自動彈出完成必要設(shè)置的提示框,點擊Next按鈕,設(shè)置新密碼,如圖7所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

這里,自行記錄新設(shè)置的密碼,用于后續(xù)登錄Nexus。JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊Next按鈕,選擇nable anonymous access,如圖8所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊Next按鈕,如圖9所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊Finish按鈕,即可完成設(shè)置。JZM28資訊網(wǎng)——每日最新資訊28at.com

3、配置阿里云代理倉庫

Nexus默認(rèn)使用的遠(yuǎn)程倉庫為maven-central,從這個遠(yuǎn)程倉庫下載依賴很慢,經(jīng)常連不上,如圖10所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

鼠標(biāo)單機(jī)maven-central倉庫,查看maven-central倉庫配置的遠(yuǎn)程鏈接,如圖11所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

可以看到,maven-central倉庫配置的遠(yuǎn)程鏈接為https://repo1.maven.org/maven2/,從這個遠(yuǎn)程倉庫下載依賴很慢,經(jīng)常連不上,所有我們需要配置阿里云遠(yuǎn)程代理倉庫。JZM28資訊網(wǎng)——每日最新資訊28at.com

回到圖10所示的頁面,點擊Create repository按鈕,如圖12所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊后進(jìn)入選擇倉庫類型的頁面,這里我們選擇maven2(proxy)類型,如圖13所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊選則maven2(proxy)類型后,進(jìn)入配置遠(yuǎn)程代理倉庫的頁面,如圖14所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

其中,每個配置項如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

  • Name:aliyun-central
  • Version policy:Release
  • Layout policy:Strict
  • Remote storage:http://maven.aliyun.com/nexus/content/groups/public

接下來,拖動3-14頁面右側(cè)的滾動條,滑到最下面,點擊Create repository按鈕,如圖15所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊Create repository按鈕后,就可以在Repositories列表中看到新配置的阿里云代理倉庫了,如圖16所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

并且Status顯示的是Online - Ready to connect,說明阿里云遠(yuǎn)程倉庫配置成功。JZM28資訊網(wǎng)——每日最新資訊28at.com

4、配置倉庫組

接下來,需要將aliyun-central配置到倉庫組,并且將aliyun-central排在maven-central上面。具體步驟如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

在Repositories列表中,點擊maven-public,如圖17所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊后進(jìn)入如圖18所示的頁面。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

下拉頁面右側(cè)的滾動條,找到如圖19所示的配置。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

將aliyun-central移動到右側(cè),并排在最上面,如圖20所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊Save按鈕保存配置。JZM28資訊網(wǎng)——每日最新資訊28at.com

5、創(chuàng)建用戶

接下來,創(chuàng)建一個用于上傳Jar包到倉庫的用戶,具體步驟如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊Security菜單下的Users菜單,如圖21所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

點擊Users菜單后,點擊Create local user按鈕,如圖22所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

隨后,按照圖23所示設(shè)置用戶的基本信息。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

這里,自行記錄用戶的密碼,用于后續(xù)上傳jar文件使用,配置好之后,點擊底部的Create local user按鈕即可。點擊后在Security菜單下的Users菜單的用戶列表中,可以查看到新創(chuàng)建的本地用戶,如圖24所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

至此,Nexus3配置完畢。JZM28資訊網(wǎng)——每日最新資訊28at.com

五、配置本地Maven倉庫

配置完Nexus后,接下來,還需要對本地的Maven倉庫進(jìn)行配置,主要就是對Maven的的settings.xml文件進(jìn)行配置。JZM28資訊網(wǎng)——每日最新資訊28at.com

1、復(fù)制settings文件

復(fù)制setting.xml文件為setting-binghe.xml文件,如圖25所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

圖片JZM28資訊網(wǎng)——每日最新資訊28at.com

2、配置servers節(jié)點

在settings-binghe.xml文件中,找到servers節(jié)點,在servers節(jié)點中,配置5.5節(jié)創(chuàng)建的用戶,如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

<server>    <id>binghe</id>    <username>binghe</username>    <password>binghe123</password></server>

3、配置mirrors節(jié)點

在settings-binghe.xml文件中,找到mirrors節(jié)點,在mirrors節(jié)點中,配置倉庫地址,如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

<!--本地私服倉庫地址--><mirror>    <id>central</id>    <name>Local Repository</name>    <url>http://192.168.106.102:8081/repository/maven-public</url>    <mirrorOf>*</mirrorOf></mirror><!--阿里云倉庫地址--><mirror>    <id>nexus-aliyun</id>    <mirrorOf>*</mirrorOf>    <name>Nexus aliyun</name>    <url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>

4、配置profiles節(jié)點

在settings-binghe.xml文件中,找到profiles節(jié)點,在profiles節(jié)點中,配置倉庫信息,如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

<profile>    <id>maven-public</id>    <activation>        <activeByDefault>true</activeByDefault>        <jdk>1.8</jdk>    </activation>    <properties>        <maven.compiler.source>1.8</maven.compiler.source>        <maven.compiler.target>1.8</maven.compiler.target>        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    </properties>    <repositories>        <repository>            <id>nexus-public</id>            <url>http://192.168.106.102:8081/repository/maven-public/</url>            <releases>                <enabled>true</enabled>                <updatePolicy>always</updatePolicy>            </releases>            <snapshots>                <enabled>true</enabled>                <updatePolicy>always</updatePolicy>            </snapshots>        </repository>    </repositories></profile>

至此,Maven私服倉庫搭建完畢,并且本地Maven也已經(jīng)配置完畢。JZM28資訊網(wǎng)——每日最新資訊28at.com

后續(xù)使用Maven構(gòu)建項目時,指定使用binghe-settings.xml文件即可將依賴的Jar文件和生成的Jar文件上傳到Maven私服倉庫,如果使用IDEA編譯項目,也需要在IDEA中,將Maven的配置文件指定為settings-binghe.xml。JZM28資訊網(wǎng)——每日最新資訊28at.com

注意:我已經(jīng)將settings-binghe.xml文件上傳到本節(jié)對應(yīng)源碼分支的environment/maven目錄下,大家自行獲取即可。JZM28資訊網(wǎng)——每日最新資訊28at.com

六、項目pom.xml配置

搭建完Maven私服倉庫,配置好本地Maven倉庫后,還需要在項目的pom.xml文件中進(jìn)行相應(yīng)的配置,具體如下所示。JZM28資訊網(wǎng)——每日最新資訊28at.com

<build>    <plugins>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-compiler-plugin</artifactId>            <version>3.8.1</version>            <configuration>                <source>${java.version}</source>                <target>${java.version}</target>                <encoding>${project.build.sourceEncoding}</encoding>            </configuration>        </plugin>        <!--發(fā)布代碼Jar插件 -->        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-deploy-plugin</artifactId>            <version>2.8.2</version>        </plugin>        <!--發(fā)布源碼插件 -->        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-source-plugin</artifactId>            <version>3.0.0</version>            <executions>                <execution>                    <phase>install</phase>                    <goals>                        <goal>jar-no-fork</goal>                    </goals>                </execution>            </executions>        </plugin>    </plugins></build><distributionManagement>    <repository>        <!--這里的id與settings.xml中的servers節(jié)點配置的用戶ID一直,這樣才能使用配置的用戶去上傳到maven私有倉庫 -->        <!--此倉庫對應(yīng)的為RELEASE版本的jar-->        <id>binghe</id>        <url>http://192.168.106.102:8081/repository/maven-releases/</url>    </repository>    <snapshotRepository>        <!--這里的id與settings.xml中的servers節(jié)點配置的用戶ID一直,這樣才能使用配置的用戶去上傳到maven私有倉庫 -->        <!--此倉庫對應(yīng)的為SNAPSHOT版本的jar-->        <id>binghe</id>        <url>http://192.168.106.102:8081/repository/maven-snapshots/</url>    </snapshotRepository></distributionManagement>

是不是很簡單?你照著文章一步步實操,就可以基于Docker搭建屬于自己的Maven私服倉庫了。JZM28資訊網(wǎng)——每日最新資訊28at.com

七、寫在最后

這些真實場景的項目設(shè)計與落地實現(xiàn),在冰河的知識星球除了分布式IM即時通訊系統(tǒng)外,還有其他5個項目,這些項目的需求、方案、架構(gòu)、落地等均來自互聯(lián)網(wǎng)真實業(yè)務(wù)場景,讓你真正學(xué)到互聯(lián)網(wǎng)大廠的業(yè)務(wù)與技術(shù)落地方案,并將其有效轉(zhuǎn)化為自己的知識儲備。JZM28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-51247-0.html研發(fā)提效必備技能:25張圖手把手教你基于Docker搭建Maven私服倉庫

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 基于Electron快速將任意網(wǎng)站打包成跨平臺的桌面端軟件

下一篇: useEffect 實踐案例:自定義 Hook

標(biāo)簽:
  • 熱門焦點
Top