基于docker搭建maven私服

  • 应用场景
     1. 可以将公司内部的项目部署到私服上(局域网),以便供其他依赖项目使用。 
     2.为了节省带宽和时间。当本地
    Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,整个项目还是可以正常使用的。也降低了中央仓库的负荷
     基于docker搭建maven私服_第1张图片
     
  • 环境搭建
  1. 安装docker
     参考文档: https://blog.csdn.net/xiaobo5264063/article/details/100939821
     
  2. 下载一个nexus3的镜像
    docker pull sonatype/nexus3
  3. 启动并挂载 
    将容器内部/var/nexus-data挂载到主机/root/nexus-data目录
    docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
    估计等待1至2分钟
  4. 访问
    // 查看是否启动成功
    docker logs -f 容器id
    // 关闭防火墙
    systemctl stop firewalld.service
    // 访问链接
    http://ip:8081
    
    基于docker搭建maven私服_第2张图片
     
     
  5. 获取密码
    默认的账号:admin 密码:admin123这里是无法登录,因为Nexus3及后续的版本不支持默认密码: admin123 了,采用了随机密码,如何查看登录密码呢?
    // 查看启动的Nexus3容器id
    docker ps
    // 进入容器
    docker container exec -it 容器id  /bin/bash
    // 进入目录
    cd /
    cd nexus-data
    // 查看初始化的随机密码
    cat admin.password

     如上图所示"9ff950ef-dd81-458a-a1ab-99ead5d1215f"就是随机生成的登录密码 
  6. 登录
    基于docker搭建maven私服_第3张图片
    账号:admin 密码:9ff950ef-dd81-458a-a1ab-99ead5d1215f
    登录成功后,会提示修改密码,照着操作就行了! 
    安装完成了!!!
  • 如何修改maven私服的远程仓库地址
  1. 登录nexus,点击'设置'-->'Repositories',找到'maven-central'中'proxy'点击进入
    基于docker搭建maven私服_第4张图片
     
  2. 找到'Proxy'-->'Remote storage:',修改保存
    基于docker搭建maven私服_第5张图片
    可以修改成阿里的仓库地址
  • 如何上传或引入项目到maven私服  
    这里分为五步: 1.创建仓库   2.创建用户  3.配置maven  4.上传项目  5.引入项目
     
     
     
  • 创建仓库
  1. 登录nexus,点击'设置'-->'Repositories'-->'Create repository'
    基于docker搭建maven私服_第6张图片
  2. 这里选择'maven2 (hosted)', 进入
     基于docker搭建maven私服_第7张图片
  3.  创建仓库
    输入仓库名称(自定义)
    在'Hosted'-->'Deployment policy:'下选择'Allow redeploy'  , 其他的默认就行
    基于docker搭建maven私服_第8张图片
     Release:  版本类型,和你本地要一致
     点击页面最下方的'Create repository',创建仓库
  4. 查看仓库地址
    基于docker搭建maven私服_第9张图片
    在列表处,点击仓库名称进入, 在URL这里就是我们的仓库地址: http://192.168.2.126:8081/repository/pitch-release/基于docker搭建maven私服_第10张图片这里仓库就创建完成了!!!接下来创建用户
  • 创建用户
  1. 创建用户
    点击'设置'-->'Users'-->'Create local user'基于docker搭建maven私服_第11张图片
  2. 设置用户信息
    基于docker搭建maven私服_第12张图片
    输入'ID'、'First name'、'Last name'  项,自定义,这里我设置的都是pitch
    输入'Email'
    输入 'Password'、'Confirm password'项,密码和确认密码
    选择'Status'项,选择'Active'激活状态 
    选择'Roles'项,选择'nx-admin'和'nx-anonymous' 
    点击'Create local user',保存用户 
  3.  查看用户
    基于docker搭建maven私服_第13张图片
    使用账户:pitch ,也可以登录我们的nexus 
    这里用户创建完成了
     
  4. 上面步骤已经完成了在nexus中完成了仓库和用户的创建,记住如下信息
    // pitch-release仓库地址
    http://192.168.2.126:8081/repository/pitch-release/
    // 用户id
    pitch
    // 用户名称
    pitch
    // 用户密码
    123456
    接下来就是就是我们本地的配置了
  • 配置maven
  1. 找到你本地maven的settings.xml 文件
    基于docker搭建maven私服_第14张图片
  2. 配置settings.xml 文件,添加配置信息如下: 
      
        
    	
            pitch
            pitch
            123456
          
    
      
    基于docker搭建maven私服_第15张图片
     
  • 上传项目
     
  1. 创建springboot项目,在pom.xml中添加如下配置
     
      
        
          
          pitch
          
          http://192.168.2.126:8081/repository/pitch-release/
        
      
      
        
          
          
            org.apache.maven.plugins
            maven-deploy-plugin
            2.7
          
          
          
            org.apache.maven.plugins
            maven-source-plugin
            2.2.1
            
              
                package
                
                  jar
                
              
            
          
        
      
    注意事项:  
     项目的版本一定不能是1.0-SNAPSHOT 不能含有SNAPSHOT
     可以改成1.0-RELEASE1.0

    基于docker搭建maven私服_第16张图片
  2. 打包 
     
    // cmd进入项目路径,打包,mvn deploy:将jar包打入maven私服仓库
    mvn deploy
    
  3. 登录nexus查看
    点击'浏览器图标'-->'maven' 基于docker搭建maven私服_第17张图片
    这里就打包上传成功了!!!
  • 引入项目
  1. 创建另外一个项目,在pom.xml中配置如下:  
      
        
        
          com.basic
          nexus_upload
          1.0-RELEASE
        
      
    
      
      
        
          pitch
          http://192.168.2.126:8081/repository/pitch-release/
        
      
    这里如果能够成功引入刚刚上传到私服nexus_upload项目的依赖,表示成功!!!
    因为2个项目是同一个maven,避免测试下载是本地的缓存,可以先清缓存 
    完成!!!
     
     
     
  •  如何判断文件是否发生改变
     如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同。比较常用的文件hash算法有MD5和SHA-1。
     
     

     

你可能感兴趣的:(基于docker搭建maven私服)