Docker搭建nexus,並實現上傳下拉依賴

Docker搭建nexus,並實現上傳下拉依賴

環境

Centos7.4

安裝docker

  1. 安裝詳細參考地址:博客
  2. 簡化步驟
    • 卸載
      yum list installed | grep docker
      在這裏插入圖片描述
      執行無任務信息,則直接跳到安裝
      yum remove -y docker.x86_64 docker-client.x86_64 docker-common.x86_64
      在這裏插入圖片描述
      注意: 要複製自己對應docker版本
      查詢卸載結果
      yum list installed | grep docker
      在這裏插入圖片描述
    • 安裝
      yum install -y docker
      在這裏插入圖片描述
    • 啓動docker
      systemctl start docker
      systemctl enable docker
    • 查看docker是否啓動
      systemctl status docker
      在這裏插入圖片描述

使用docker安裝nexus

借鑑博客

博客:博客

安裝

  1. 查找鏡像

    docker search nexus
    
  2. 選取使用次數較多是鏡像 拉取鏡像

    docker pull sonatype/nexus3
    
  3. 查看拉取的鏡像

    docker images
    

    在這裏插入圖片描述

  4. 創建volume(如果直接用 -v /opt/nexus-data:/nexus-data,可能會存在權限問題)

    docker volume create nexus-data
    
  5. 查看創建結果

    docker volume inspect nexus-data
    

    在這裏插入圖片描述

  6. 啓動nexus

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

    -d 是後臺啓動
    –name 是啓動容器名
    –restart=always 意思docker被重啓,對應該容器也會被重啓
    -p 宿主機端口映射(:前面是宿主機端口, :後面是容器端口)
    -v 將容器某個目錄掛載到宿主機上面 nexus-data是上面配置好的宿主機掛載點,/nexus-data是容器對應路徑
    sonatype/nexus3 是啓動的鏡像

  7. 開放端口

    1. 開放安全組(對應阿里雲,騰訊雲後臺,添加安全組)
    2. 開放防火牆端口
      1. 關閉防火牆
        systemctl stop firewalld
        systemctl disable firewalld
      2. 開啓端口
        systemctl restart firewalld
        systemctl enable firewalld
        firewall-cmd --zone=public --add-port=8081/tcp --permanent
        firewall-cmd --reload
        firewall-cmd --list-ports
        在這裏插入圖片描述

訪問web

  1. 訪問路徑: ip:8081,網上說默認的賬號是admin,密碼是admin123,實際新版本會隨機一個admin密碼
    在這裏插入圖片描述
  2. 獲取正確密碼
    上面路徑我們已經通過docker volume做了映射了,可以通過docker volume inspect nexus-data 查看真實機器路徑
    在這裏插入圖片描述
    cd /var/lib/docker/volumes/nexus-data/_data
    在這裏插入圖片描述
    cat admin.password
    在這裏插入圖片描述
    複製登陸
    在這裏插入圖片描述
    在這裏插入圖片描述

在這裏插入圖片描述
禁用 anonymous用戶訪問
在這裏插入圖片描述

在這裏插入圖片描述

這裏簡單介紹下幾種repository的類型:

  1. hosted,本地倉庫,通常我們會部署自己的構件到這一類型的倉庫。比如公司的第二方庫。
  2. proxy,代理倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫。
  3. group,倉庫組,用來合併多個hosted/proxy倉庫,當你的項目希望在多個repository使用資源時就不需要多次引用了,只需要引用一個group即可

介紹我們用使用的倉庫

maven-central 配置中央倉庫,可以直向maven官方屬於代理類的倉庫
maven-releases 私人倉庫,用戶的正式版本的jar存放倉庫
maven-snapshots 私人倉庫, 用戶的快照版本jar存放倉庫
maven-public = maven-releases + maven-snapshots + maven-central
這裏可以單擊 上面maven-public ,查看內部配置
在這裏插入圖片描述
注意: 我也就是我們搭建私庫使用主要就是maven-public庫

通過idea上傳jar到nexus庫裏面

setting文件添加server

注意username是在ip:8081登陸賬號,password是在ip:8081登陸的密碼

<servers>
	<!--maven-public倉庫對應賬號密碼設置-->
	<server>
	  <id>nexus-public</id>     
      <username>admin</username>     
      <password>123456789</password>   
	</server>
	<!--maven-releases倉庫對應賬號密碼設置-->
    <server>     
      <id>nexus-releases</id>     
      <username>admin</username>     
      <password>123456789</password>     
    </server>     
    <!--maven-snapshot倉庫對應賬號密碼設置-->
    <server>     
      <id>nexus-snapshots</id>     
      <username>admin</username>     
      <password>123456789</password>     
    </server>        
  </servers>
</servers>

項目pom文件添加配置

    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>Nexus Release Repository</name>
            <url>http://ip:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://ip:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

在這裏插入圖片描述
注意: 上面 id 要和 setting裏面配置 server下的id一樣,要不然就沒法調用對應賬號密碼
注意: 上面 id 要和 setting裏面配置 server下的id一樣,要不然就沒法調用對應賬號密碼
注意: 上面 id 要和 setting裏面配置 server下的id一樣,要不然就沒法調用對應賬號密碼
url路徑可以通過web頁面複製過來
在這裏插入圖片描述

測試上傳

idea可以直接點擊 deploy
在這裏插入圖片描述
或者命令行
mvn deploy
在這裏插入圖片描述
如果你發佈是releases的jar,可能會報錯
在這裏插入圖片描述

在這裏插入圖片描述
解決方案:
在這裏插入圖片描述

在這裏插入圖片描述
選擇 Allow redeploy,記得保存

查詢是否發佈到私服上面去了
在這裏插入圖片描述

從私庫上面拉取jar包

配置方案

  1. 配置repository
    1. pom文件配置repository
    2. setting文件配置repository
  2. setting文件配置mirror

這裏要說下maven拉取jar順序

1、本地倉庫
2、maven settings profile中的repository;
3、pom.xml中profile中定義的repository;
4、pom.xml中的repositorys(定義多個repository,按定義順序找);
5、mirror

通過配置項目repositorys實現拉取

  1. 新建一個maven項目

  2. 項目裏面pom文件添加

        <dependencies>
            <dependency>
                <groupId>com.demo</groupId>
                <artifactId>my-maven-demo</artifactId>
                <version>1.0</version>
            </dependency>
        </dependencies>
    
        <repositories>
            <repository>
                <id>nexus-public</id>
                <url>http://ip:8081/repository/maven-public/</url>
            </repository>
        </repositories>
    

    在這裏插入圖片描述
    拉取前刪除本地庫對應demo,jar包
    在這裏插入圖片描述
    點擊刷新maven項目
    在這裏插入圖片描述
    在這裏插入圖片描述
    從私庫裏面拉取成功
    在這裏插入圖片描述

通過pom.xml中profile中定義的repository拉取

  1. pom文件添加
    <dependencies>
        <dependency>
            <groupId>com.demo</groupId>
            <artifactId>my-maven-demo</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>


    <profiles>
        <profile>
            <id>dev</id>
            <repositories>
                <repository>
                    <id>nexus-public</id>
                    <url>http://ip:8081/repository/maven-public/</url>
                </repository>
            </repositories>
        </profile>
    </profiles>
  1. 測試前清空本地倉庫
    在這裏插入圖片描述
  2. 刷新項目
    在這裏插入圖片描述
    或者命令行運行 mvn clean install -P dev 刷新項目
  3. 拉取成功
    在這裏插入圖片描述

從maven settings profile中的repository拉取jar

  1. 清空項目pom文件
    在這裏插入圖片描述

  2. 修改maven setting文件,在setting文件添加profile配置

<profiles>
	<profile>
      <id>jdk-1.4</id>
      <repositories>
        <repository>
          <!--這裏名字必須和上面maven-public server id一樣 -->
          <id>nexus-public</id>
          <name>Repository for JDK 1.4 builds</name>
           <url>http://ip:8081/repository/maven-public/</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
</profiles>

 <activeProfiles>
    <activeProfile>jdk-1.4</activeProfile>
  </activeProfiles>
  1. 清空本地倉庫
    在這裏插入圖片描述
  2. idea刷新項目
    在這裏插入圖片描述
  3. 本地倉庫結果
    在這裏插入圖片描述

通過配置mirror拉取jar包

  1. 清空setting裏面 profiles設置
  2. 添加mirror
	  <mirror>
	  <!--這裏必須和server id 一樣-->
    <id>nexus-public</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://ip:8081/repository/maven-public/</url>
</mirror>
  1. 清空本地倉庫
    在這裏插入圖片描述
  2. 刷新項目
    在這裏插入圖片描述
  3. 拉取結果
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章