Docker+Nexus3搭建自己的Maven仓库

想了解Linux安装Nexus3可以看官方文档,这里说一下docker的方式如何安装配置。

安装Nexus

  • 搜索nexus 镜像

    nexus搜索结果

  • 拉取镜像

    docker pull sonatype/nexus3
    
  • 查看镜像是否拉取下来


    镜像图
  • 创建nexus的挂载地址并授权

    # 创建挂载地址
    mkdir /usr/local/nexus
    # 给文件夹授权
    chmod chmod -R 777 /usr/local/nexus 
    # 后台运行nexus并挂载出来
    docker run -d -p 8081:8081 --name nexus3 -v /usr/local/nexus:/nexus-data sonatype/nexus3
    
  • 访问Nexus(默认账号:admin,密码在admin.password文件里面)


    登录界面

配置nexus

  • 这些仓库默认就会存在的,你可以直接使用这些仓库,或者修改一下也可以。为了配置自己的仓库我们需要先删掉自带的仓库。


    默认仓库图
  • Blob Stores介绍
    repositor是需要以Blob格式存储的。默认的Blol Stores是基于文件系统的,你可以把它理解为一个目录

    可以通过Repository > Blob Store来管理存储媒介,可以看到下面的默认存储名default,类型File的Blob Store

    Blob图

    Blob Stores参数如下:

    参数 含义
    Name Blob Stores的名称,是唯一的
    Type 类型,一般为File
    State 状态
    Blob count Blob数目
    Total size 现在该存储目录的大小
    Available space 可用的空间,就是存储目录所在分区的磁盘剩余空间
  • 新建Blob Store
    点击Repository > Blob Store > Create blob store

    创建Blob

    • Type: 这个有FileS3两个选项,这里选File就行。
    • Name: 名字随便起吧,我的叫aen-blob
    • Enable Soft Quota: 这个是限制目录的大小。这边就不限制了。你要是限制的话就勾上并填入上限的条件和限制的值就好了。
    • Path:就是个路径,在填入Name的时候就会自动生成

    最后点击Create blob store就好了

  • 创建hosted类型的仓库
    这个仓库主要放一些自己封装的工具类,自己手动构建上传的包,或者中央仓库找不到的包
    hosted有两种类型的maven仓库分别为snapshotrelease,那么该如何区分了?
    snapshot:顾名思义快照的意思,所以一般放一些不稳定的库,一天能修改好几次代码的库。
    release:公开,发行。所以这个一般放的都是比较稳定的发行版本

  • 创建release发行库
    点击Repository > Repositories > Create repository,选择maven2(hosted)。

    选择hosted图

    • Name: 随便起一个名字吧,maven-releases-aen

    • Online: 勾选,设置这个仓库是在线还是离线

    • Maven2:

      Version Policy: 版本策略,三个选择分别为:
      Release:正式版本
      Snapshot:快照版本
      Mixed:混合模式
      这里选择Release

      Layout Policy:布局策略
      Strict:严格
      Permissive:宽松
      这里选择默认的Strict

    • Storage:
      Blob store:选择此仓库使用的Blob存储,这里选择之前创建的aen-blob。
      Strict Content Type Validation:验证上传内容格式,这里不勾选。

    • Hosted:

      Deployment Policy:部署策略,三个选择分别为:
      Allow Redeploy:允许重新部署
      Disable Redeploy:禁止重新部署
      Read-Only:只读

      因为是release发行库,这里选Disable Redeploy

      创建release发行库

  • 创建snapshot快照库
    和创建release发行库一样,点击Repository > Repositories > Create repository,选择maven2(hosted)。

    创建snapshot快照库

  • 创建一个代理(proxy类型) 仓库
    点击Repository > Repositories > Create repository,选择maven2(proxy)。

    创建阿里云代理库

    • Proxy: http://maven.aliyun.com/nexus/content/groups/public
    • 看上图,其它的都是默认设置
  • 创建一个组(group类型)仓库
    点击Repository > Repositories > Create repository,选择maven2(gruop)。

    创建组库

组里里面顺序建议阿里云的代理仓库放第一,因为maven代理仓库下载顺序是从上往下的,建议将速度快的仓库放在最前面。

验证测试

  • 假装你们都有jdkmaven环境了,修改maven里面的设置比如我的D:\apache\apache-maven-3.5.4\conf\settings.xml。记得备份一下这个文件不然修改错了就麻烦了。

    
    
        
        D:\m2\repository
     
        
        
        
      
        
        
        
      
        
            
                nexus-aen
                admin
                Nexus2020
            
            
                releases
                admin
                Nexus2020
            
            
                snapshots
                admin
                Nexus2020
            
        
      
        
           
            nexus-aen
              internal nexus repository
              
              http://192.168.31.236:8081/repository/maven-public-aen/
              !internal.repo,*
           
        
      
        
           
                  
                  jdk-1.8
                  
                      true
                      1.8
                  
                  
                      1.8
                      1.8
                      1.8
                  
          
        
          
          nexus-pro
           
          
            
              nexus
              Nexus Central
             
              http://192.168.31.236:8081/repository/maven-public-aen/
              default
               
              
                false
                always
              
               
              
                true
                always
              
            
          
          
           
          
            
              nexus
              Nexus Central
              http://192.168.31.236:8081/repository/maven-public-aen/
              default
              
                true
                always
              
              
                 true
                 always
              
            
          
        
         
    
      
        nexus-pro
        jdk-1.8
      
    
    
  • 在需要打包的pom文件里面添加distributionManagement属性

     
     
         
         
             
             releases
             
             Release repository
             http://192.168.31.236:8081/repository/maven-releases-aen/
         
         
         
             
             snapshots
             
             Snapshots repository
             http://192.168.31.236:8081/repository/maven-snapshots-aen/
         
     
    
  • 在打包上传之前我们先看一下maven-public-aen和maven-releases-aen库


    没打包之前图
  • 打包只需要点点点就好了


    打包图
  • 现在我们再来看一下maven-public-aen和maven-releases-aen库


    maven-releases-aen库

    maven-public-aen库

好了到这里我们的maven仓库就搭建测试完成了

参考地址:
https://help.sonatype.com/repomanager3
https://hub.docker.com/r/sonatype/nexus3/
https://blog.csdn.net/wc1695040842/article/details/102575686

你可能感兴趣的:(Docker+Nexus3搭建自己的Maven仓库)