Ubuntu部署和體驗Nexus3

程式設計師欣宸發表於2020-10-01

關於Nexus

如下圖,在區域網部署了Nexus之後,可以快取中央倉庫的jar,開發者開發的二方庫釋出到Nexus上,區域網內的其他人也可以從Nexus下載這些二方庫使用:
在這裡插入圖片描述

環境資訊

本次實戰是在Linux伺服器上通過Docker安裝Nexus3:

  1. 作業系統:Ubuntu 18.04.3 LTS
  2. Docker:19.03.5
  3. Nexus:3.19.1

安裝docker

  1. apt更新:
apt-get update
  1. 安裝curl:
apt-get install -y curl
  1. 安裝docker:
curl -sSL https://get.docker.com | sh
  1. 安裝完成後,檢查docker是否正常:
root@hedy:~# docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea838
 Built:             Wed Nov 13 07:29:52 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea838
  Built:            Wed Nov 13 07:28:22 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

部署Nexus3

  1. 建立工作目錄並賦許可權:
mkdir -p /usr/local/work/nexus-data && chown -R 200 /usr/local/work/nexus-data
  1. 下載Nexus映象並建立容器:
docker run -d \
-p 8081:8081 \
--name nexus \
-v /usr/local/work/nexus-data:/nexus-data \
sonatype/nexus3:3.19.1

上述命令的引數較多,有幾點需要注意:
a. 容器的8081埠對映到宿主機的8081埠;
b. 容器名為nexus
c. 容器的/nexus-data/目錄被對映到宿主機的/usr/local/work/nexus-data/
d. 映象是sonatype官方的3.19.1版本;
3. 等待容器建立成功後,Nexus3即部署成功;

登入和操作Nexus3

  1. 在控制檯執行以下命令,即可獲得Nexuse3的初始密碼:
echo `docker exec nexus cat /nexus-data/admin.password`

我這裡得到的是2c9c5399-d0da-48ec-9050-dc4f43cede10
2. 點選下圖右上角紅框中的Sign in,進入登入頁面:
在這裡插入圖片描述
3. 登入頁面如下圖,賬號admin,密碼是剛才獲取的2c9c5399-d0da-48ec-9050-dc4f43cede10:
在這裡插入圖片描述
4. 登入成功會提示修改密碼,如下圖,請修改:
在這裡插入圖片描述
5. 是否執行匿名訪問,這裡勾選上:
在這裡插入圖片描述

角色和賬號

在實際使用中,為了安全起見,不能讓每個使用者使用admin賬號,您可以先建立角色,按實際需要給角色增加各種許可權,再建立此角色下的賬號:

  1. 點選下圖紅框中的按鈕,進入設定頁面:
    在這裡插入圖片描述
  2. 下圖紅框中是角色管理頁面的連結,您可以按照實際情況建立角色:
    在這裡插入圖片描述
  3. 這裡為了簡化操作就不新建角色了,而是建立一個管理員角色的賬號boling_cavalry,操作如下圖所示:
    在這裡插入圖片描述

至此,Nexus3部署完畢,接下來驗證Nexus能否提供jar快取的功能;

準備兩臺電腦驗證Nexus服務

接下來驗證的是Nexus快取中央倉庫jar包的能力,看看有了Naxus,能否讓我們在開發和構建過程中更快的下載到所需jar;

  1. 另外準備兩臺電腦,分別是A電腦和B電腦,用來驗證剛剛部署的Nexus3可以快取中央倉庫的jar包(您也可以用虛擬機器建立兩臺電腦);
  2. A、B兩臺電腦都已經裝好了JDK8和Maven3;
  3. 如下圖,在倉庫列表頁面,點選下圖紅框位置,可以得到maven-central倉庫的地址http://192.168.50.75:8081/repository/maven-central/
    在這裡插入圖片描述

修改兩臺電腦的maven配置檔案

電腦A和電腦B上的maven目錄下的conf/settings.xml檔案都要做以下修改:

  1. 找到servers節點,增加以下內容:
<server>
      <id>maven-central</id>
      <username>bolingcavalry</username>
      <password>888888</password>
</server>
  1. 找到mirrors節點,增加以下內容,其中url的內容就是前面得到的maven-central倉庫地址:
<mirror>
  <id>maven-central</id>
  <mirrorOf>*</mirrorOf>
  <url>http://192.168.50.75:8081/repository/maven-central/</url>
</mirror>

在A電腦上編譯構建專案(應該很慢)

在A電腦上編譯開源專案spring-cloud-alibaba,此時Nexus上沒有快取任何jar包,所以編譯速度會很慢,因為所有依賴jar都要從中央倉庫下載,我們來試試:

  1. 登入A電腦,下載spring-cloud-alibaba的2.1.1.RELEASE歸檔包:
wget https://github.com/alibaba/spring-cloud-alibaba/archive/v2.1.1.RELEASE.tar.gz
  1. 解壓下載的檔案:
tar -zxvf v2.1.1.RELEASE.tar.gz
  1. 進入解壓後的目錄:
cd spring-cloud-alibaba-2.1.1.RELEASE/
  1. 編譯:
mvn clean compile -U -DskipTests
  1. 編譯完成,如下圖紅框所示,本次編譯耗時9分27秒
    在這裡插入圖片描述
  2. 去Nexus網頁上看看,如下圖,此時已經快取了不少jar:
    在這裡插入圖片描述

在B電腦上編譯構建專案(應該很快)

在B電腦上做同樣的操作,此時Nexus上已經快取了編譯所需的jar包,所以整個編譯過程應該明顯變快,最終操作結果如下圖所示,僅用了1分零6秒:
在這裡插入圖片描述
至此,Ubuntu上部署和體驗Nexus3的實戰就完成了,如果您正在尋求簡單快捷的Nexus部署方案,希望本文能給您一些參考。

https://github.com/zq2599/blog_demos

相關文章