成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端
多系統共用模型與工具會被其他服務依賴,即時通訊SDK和OpenAI大模型接入SDK也會被其他服務依賴,并且多系統共用模型與工具、即時通訊SDK和OpenAI大模型接入SDK都是我們開發分布式IM即時通訊系統時的私有庫和組件。

大家好,我是冰河~~

在研發的過程中,很多企業都會針對自身業務特點來定制研發一些工具類庫,但是這些工具類庫又不會對外公開,那如何在組織內部共享這些類庫呢?一種很好的方式就是在公司內部搭建一套Maven私服倉庫。

搭建Maven私服倉庫可以提高項目構建和部署的效率、穩定性和安全性,同時方便管理內部開發的組件和私有庫,比較適用于企業內部或者特定場景下的需求。

就拿我們星球的分布式IM即時通訊系統來說,對于后端服務,我們將其劃分成了 多系統共用模型與工具、即時通訊后端服務、大后端平臺、即時通訊SDK、OpenAI大模型接入SDK 等。

其中,多系統共用模型與工具會被其他服務依賴,即時通訊SDK和OpenAI大模型接入SDK也會被其他服務依賴,并且多系統共用模型與工具、即時通訊SDK和OpenAI大模型接入SDK都是我們開發分布式IM即時通訊系統時的私有庫和組件,所以,在設計和研發分布式IM即時通訊系統的過程中,我們也需要搭建一套自己的Maven私服來統一管理這些私有庫和組件。

好了,那接下來,我們就一起搭建Maven私服倉庫吧。

二、環境說明

  • 服務器版本:CentOS7
  • 主機名:binghe102
  • IP地址:192.168.106.102
  • Maven私服鏡像:sonatype/nexus3

三、環境搭建

基于Docker搭建Maven私服的步驟如下所示。

1、下載Nexus3鏡像

在服務器命令行輸入如下命令,下載Nexus3鏡像。

docker pull sonatype/nexus3

這里,視網絡情況,可能需要耐心等待一會兒。

2、查看Nexus3鏡像

在服務器命令行輸入如下命令,查看下載的Nexus3鏡像。

[root@binghe102 ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
sonatype/nexus3   latest    589f7296a4a2   23 months ago   655MB

可以看到,已經成功下載Nexus3鏡像。

3、創建Nexus3掛載文件夾

在服務器命令行輸入如下命令,創建nexus的掛載文件夾。

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

4、啟動Nexus3容器

在服務器命令行輸入如下命令,啟動Nexus3容器。

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

可以看到,在上述啟動命令中,我們將Nexus3容器的/nexus-data目錄映射到了宿主機的/usr/local/nexus-data目錄。此時,Nexus3容器運行過程中,在/nexus-data目錄產生的文件和日志都會在宿主機的/usr/local/nexus-data目錄中查看到。

5、查看Nexus3容器啟動狀態

在服務器命令行輸入如下命令,查看Nexus3容器啟動狀態。

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

可以看到,Nexus3容器啟動成功,監聽了8081端口。

四、Nexus3配置

搭建完Nexus3環境后,我們還需要對其進行配置,具體配置的步驟如下所示。

1、打開Nexus3頁面

Nexus3容器啟動時監聽的端口和宿主機端口都是8081,所以,我們在瀏覽器地址欄輸入http://192.168.106.102:8081打開Nexus3頁面,如圖1所示。

2、登錄Nexus3

點擊Nexus3右上角的登錄,如圖2所示。

圖片

點擊后會彈出如圖3所示的提示框。

圖片

根據提示得知,初始密碼的存放位置為/nexus-data/admin.password,因為我們在啟動Nexus3容器時,將Nexus3容器的/nexus-data目錄映射到了宿主機的/usr/local/nexus-data目錄,所以,我們在宿主機的/usr/local/nexus-data目錄中也能夠查詢到admin.password文件。

所以,在宿主機中輸入如下命令即可查看到admin.password文件。

ll /usr/local/nexus-data

具體如圖4所示。

圖片

輸入如下命令查看admin.password文件的內容。

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

此時,我們就查看到登錄Nexus3的admin賬號的密碼為517842df-1a2d-49c9-b4c3-b9ad4cf0fe00,將admin賬號和對應的密碼輸入到圖3所示的提示框中,即可登錄Nexus3,如圖5所示。

圖片

登錄后的界面如圖6所示。

圖片

可以看到,首次登錄后會自動彈出完成必要設置的提示框,點擊Next按鈕,設置新密碼,如圖7所示。

圖片

這里,自行記錄新設置的密碼,用于后續登錄Nexus。

點擊Next按鈕,選擇nable anonymous access,如圖8所示。

圖片

點擊Next按鈕,如圖9所示。

圖片

點擊Finish按鈕,即可完成設置。

3、配置阿里云代理倉庫

Nexus默認使用的遠程倉庫為maven-central,從這個遠程倉庫下載依賴很慢,經常連不上,如圖10所示。

圖片

鼠標單機maven-central倉庫,查看maven-central倉庫配置的遠程鏈接,如圖11所示。

圖片

可以看到,maven-central倉庫配置的遠程鏈接為https://repo1.maven.org/maven2/,從這個遠程倉庫下載依賴很慢,經常連不上,所有我們需要配置阿里云遠程代理倉庫。

回到圖10所示的頁面,點擊Create repository按鈕,如圖12所示。

圖片

點擊后進入選擇倉庫類型的頁面,這里我們選擇maven2(proxy)類型,如圖13所示。

圖片

點擊選則maven2(proxy)類型后,進入配置遠程代理倉庫的頁面,如圖14所示。

圖片

其中,每個配置項如下所示。

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

接下來,拖動3-14頁面右側的滾動條,滑到最下面,點擊Create repository按鈕,如圖15所示。

圖片

點擊Create repository按鈕后,就可以在Repositories列表中看到新配置的阿里云代理倉庫了,如圖16所示。

圖片

并且Status顯示的是Online - Ready to connect,說明阿里云遠程倉庫配置成功。

4、配置倉庫組

接下來,需要將aliyun-central配置到倉庫組,并且將aliyun-central排在maven-central上面。具體步驟如下所示。

在Repositories列表中,點擊maven-public,如圖17所示。

圖片

點擊后進入如圖18所示的頁面。

圖片

下拉頁面右側的滾動條,找到如圖19所示的配置。

圖片

將aliyun-central移動到右側,并排在最上面,如圖20所示。

圖片

點擊Save按鈕保存配置。

5、創建用戶

接下來,創建一個用于上傳Jar包到倉庫的用戶,具體步驟如下所示。

點擊Security菜單下的Users菜單,如圖21所示。

圖片

點擊Users菜單后,點擊Create local user按鈕,如圖22所示。

圖片

隨后,按照圖23所示設置用戶的基本信息。

圖片

這里,自行記錄用戶的密碼,用于后續上傳jar文件使用,配置好之后,點擊底部的Create local user按鈕即可。點擊后在Security菜單下的Users菜單的用戶列表中,可以查看到新創建的本地用戶,如圖24所示。

圖片

至此,Nexus3配置完畢。

五、配置本地Maven倉庫

配置完Nexus后,接下來,還需要對本地的Maven倉庫進行配置,主要就是對Maven的的settings.xml文件進行配置。

1、復制settings文件

復制setting.xml文件為setting-binghe.xml文件,如圖25所示。

圖片

2、配置servers節點

在settings-binghe.xml文件中,找到servers節點,在servers節點中,配置5.5節創建的用戶,如下所示。

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

3、配置mirrors節點

在settings-binghe.xml文件中,找到mirrors節點,在mirrors節點中,配置倉庫地址,如下所示。

<!--本地私服倉庫地址-->
<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節點

在settings-binghe.xml文件中,找到profiles節點,在profiles節點中,配置倉庫信息,如下所示。

<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也已經配置完畢。

后續使用Maven構建項目時,指定使用binghe-settings.xml文件即可將依賴的Jar文件和生成的Jar文件上傳到Maven私服倉庫,如果使用IDEA編譯項目,也需要在IDEA中,將Maven的配置文件指定為settings-binghe.xml。

注意:我已經將settings-binghe.xml文件上傳到本節對應源碼分支的environment/maven目錄下,大家自行獲取即可。

六、項目pom.xml配置

搭建完Maven私服倉庫,配置好本地Maven倉庫后,還需要在項目的pom.xml文件中進行相應的配置,具體如下所示。

<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>
        <!--發布代碼Jar插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.8.2</version>
        </plugin>
        <!--發布源碼插件 -->
        <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節點配置的用戶ID一直,這樣才能使用配置的用戶去上傳到maven私有倉庫 -->
        <!--此倉庫對應的為RELEASE版本的jar-->
        <id>binghe</id>
        <url>http://192.168.106.102:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <!--這里的id與settings.xml中的servers節點配置的用戶ID一直,這樣才能使用配置的用戶去上傳到maven私有倉庫 -->
        <!--此倉庫對應的為SNAPSHOT版本的jar-->
        <id>binghe</id>
        <url>http://192.168.106.102:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

是不是很簡單?你照著文章一步步實操,就可以基于Docker搭建屬于自己的Maven私服倉庫了。

七、寫在最后

這些真實場景的項目設計與落地實現,在冰河的知識星球除了分布式IM即時通訊系統外,還有其他5個項目,這些項目的需求、方案、架構、落地等均來自互聯網真實業務場景,讓你真正學到互聯網大廠的業務與技術落地方案,并將其有效轉化為自己的知識儲備。

責任編輯:姜華 來源: 冰河技術
相關推薦

2021-12-02 11:39:28

Git服務器Linux

2024-10-21 08:01:49

私服倉庫Maven

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2021-09-30 18:27:38

數據倉庫ETL

2011-03-25 12:45:49

Oracle SOA

2010-07-06 09:43:57

搭建私有云

2010-07-06 09:38:51

搭建私有云

2022-01-04 08:52:14

博客網站Linux 系統開源

2021-07-14 09:00:00

JavaFX開發應用

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2025-05-07 00:31:30

2010-01-20 10:44:01

linux DHCP服務器

2025-02-26 07:40:25

運營分析體系運營策略

2023-04-26 12:46:43

DockerSpringKubernetes

2022-01-08 20:04:20

攔截系統調用

2022-07-27 08:16:22

搜索引擎Lucene

2022-12-07 08:42:35

2021-05-08 08:04:05

Python爬取素材

2011-02-22 13:46:27

微軟SQL.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久一区二区国产 | 成人高清视频在线观看 | 欧美成人综合 | 国产麻豆乱码精品一区二区三区 | 日本黄色一级视频 | 久久精品一区二区三区四区 | 欧美精品综合 | 欧美日韩综合一区 | 中文字幕乱码一区二区三区 | 欧洲国产精品视频 | 国产精品1区 | 午夜精品一区二区三区在线观看 | 国产精品精品久久久 | www.久久艹 | 欧美精品在线一区二区三区 | 亚洲视频欧美视频 | 一区二区三区在线播放 | 国产精品一区二区久久精品爱微奶 | 亚洲一区二区三区视频在线 | 成在线人视频免费视频 | 中文字幕一区二区三区乱码在线 | 国内精品久久久久久 | 日韩一二区在线 | 日韩久久中文字幕 | 99精品一区二区 | 国产成人jvid在线播放 | 国内久久 | www久久久| 手机看片169 | 日韩成人精品视频 | 久久国产精品-国产精品 | 91视视频在线观看入口直接观看 | 欧美日批 | 成人久草 | 免费国产一区二区 | 国产视频一区在线 | 亚洲劲爆av| 亚洲三级免费看 | 欧美一级二级三级视频 | 中文字幕在线视频一区二区三区 | 91精品国产91久久久久久 |