【玩轉Docker容器 5】基於Docker搭建Maven私服,以及項目如何使用Maven私服詳解


推薦個人Docker文章,講的非常詳細

【玩轉Docker容器 1】Dockerd的詳解及安裝
【玩轉Docker容器 2】基於Docker一分鐘搭建完 Jdk、Mysql、Nginx、Redis、Tomcat環境
【玩轉Docker容器 3】基於Docker部署SpringBoot項目
【玩轉Docker容器 4】基於Docker搭建Docker私服,以及如何使用Docker私服詳解
【玩轉Docker容器 5】基於Docker搭建Maven私服,以及項目如何使用Maven私服詳解
【玩轉Docker容器 6】基於Docker構建GitLab管理代碼
【玩轉Docker容器 7】基於Docker安裝Jenkins實現自動化構建、部署、測試、監控項目

1.Nexus是什麼

Nexus是一個強大的Maven倉庫管理器,它極大地簡化了自己內部倉庫的維護和外部倉庫的訪問。利用Nexus你可以只在一個地方就能夠完全控制訪問 和部署在你所維護倉庫中的每個Artifact。我們可以在局域網搭建一個maven私服,用來部署第三方公共構件或者作爲遠程倉庫在該局域網的一個代理。

2.Nexus和Maven私服原理

解釋:Nexus就是Maven的私服倉庫,一般大一點的公司都已自己的私有Maven庫

1、我們從項目實際開發來看一些無法從外部倉庫下載的組件(自定義的組件,未開源),例如內部的項目還要用的,這樣我們就可以署到私服上,以便供其他依賴項目使用。

2、爲了節省帶寬和時間,在局域網內架設一個私有的倉庫服務器,用其代理所有外部的遠程倉庫。當本地Maven項目需要下載構件時,先去私服請求,如果私服沒有,則再去遠程倉庫請求,從遠程倉庫下載構件後,把構件緩存在私服上。這樣,及時暫時沒有Internet鏈接,由於私服已經緩存了大量構件,整個項目還是可以正常使用的。同時,也降低了中央倉庫的負荷。
在這裏插入圖片描述

3.什麼場景用Maven私服呢?

1.在實際開發中,項目中可能會用到第三方的jar、內部通訊的服務接口都會打入到公司的私服中。

2.自定義的jar包,或者SpringBoot的pom包,一些自己封裝好的包打包到私有Maven中去,只供自己或者朋友使用(就比如你封裝了個非常強大的代碼自動生成器,或者微信和支付寶支付的封裝,只需要稍微的配置就可以使用,這時你就可以打包到Maven私服中去,下次直接在pom或xml文件配置座標就行了,只給自己或者公司或者朋友使用)

4.基於Docker搭建Nexus構建Maven私服

1.下載nexus3的鏡像

一定要是搭建了Docker的Linux環境喲,不知道的可以看我之前位置

輸入:
docker pull sonatype/nexus3

在這裏插入圖片描述

2.使用鏡像啓動一個容器

注:將容器內部/var/nexus-data掛載到主機/root/nexus-data目錄(8081:8081是Linux與Docker的端口映射)
docker run -d -p 8081:8081--name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3 

在這裏插入圖片描述

3.登錄Maven私服

關閉防火牆,訪問http://ip:8081
Maven私服啓動容器稍微比較慢,等待一會即可。

注:默認賬號密碼爲admin/admin123
在這裏插入圖片描述

媽耶,進不去,算了改密碼吧
在這裏插入圖片描述

4.修改初始密碼,登錄Maven私服

用戶名或密碼不正確,這個時候我們可以去admin.password文件中去看初始密碼。

輸入:(找到密碼文件)
find / -name 'admin.password'

在這裏插入圖片描述

輸入:
cat 輸入上面查找的文件位置獲取密碼

在這裏插入圖片描述

那一串亂七八糟的就是密碼。那他的登陸進去修改密碼
再次登錄,登錄進去後他會默認讓你修改用戶名密碼,注意倆個都是打新密碼
在這裏插入圖片描述
一直下一步就好了

5.創建Maven私服

1.創建Maven總庫

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
點擊藍色的創建就ok啦

2.創建Maven存儲庫

點擊設置界面,選擇Repositories,點擊Create repository,如下圖所示:
在這裏插入圖片描述
選擇倉庫類型,這裏Maven有三種類型,分別是group、hosted、proxy。這裏只演示hosted類型,所以選擇Maven(hosted),如下圖:
在這裏插入圖片描述
這裏的倉庫選擇正確喲
在這裏插入圖片描述
輸入了name,選擇好了Storage,後移到底下選擇創建
在這裏插入圖片描述
出現如圖
在這裏插入圖片描述
已成功,忽略地下的docker爲什麼很慢的不一樣,docker是之前創建的

6.Java項目構建jar包上傳至Maven私服

1.修改本地settings.xml

使用idea找到settings.xml
在這裏插入圖片描述
在這裏插入圖片描述

2.將其打開找到的setting.xml

在這裏插入圖片描述
在server標籤裏面加上你登錄maven私服的用戶名密碼
有可能這個文件會有很多註釋,忽略就好了,我截的屏沒有
在這裏插入圖片描述

3.配置項目的pom文件

在pom裏面添加
在這裏插入圖片描述

<!--注意限定版本一定爲RELEASE,因爲上傳的對應倉庫的存儲類型爲RELEASE -->
    <!--指定倉庫地址 -->
    <distributionManagement>
        <repository>
            <!--此名稱要和.m2/settings.xml中設置的ID一致 -->
            <id>boot-tool</id>
            <!--上傳的位置-->
            <url>http://120.77.0.58:8081/repository/boot-tool/</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>
            <!--發佈代碼Jar插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.7</version>
            </plugin>
            <!--發佈源碼插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

上傳的位置記得要改,改成私有maven倉庫的位置
私有倉庫位置在:

在這裏插入圖片描述
在這裏插入圖片描述

4.打包上傳

在ider底下點擊Terminai

輸入:mvn deploy
在這裏插入圖片描述

等待一會就上傳成功了
在這裏插入圖片描述
網頁訪問自己的上傳位置看看
在這裏插入圖片描述
在這裏插入圖片描述
已成功
在這裏插入圖片描述

7.測試從Maven私服使用jar包

如何引用呢,我這裏創建了一個空的Maven項目

對比一下倆張圖,只需在pom文件類要把name,id,版本對應,在引用遠程倉庫地址即可使用
在這裏插入圖片描述
在這裏插入圖片描述
代碼

    <dependencies>
        <dependency>
            <groupId>com.lijie</groupId>
            <artifactId>lijie-core-boot</artifactId>
            <version>2.0</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>mayikt</id>
            <url>http://120.77.0.58:8081/repository/boot-tool/</url>
        </repository>
    </repositories>

這就是我引入的jar包
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章