基于Docker搭建Maven私服

基于Docker搭建Maven私服

docker 安装nexus

  1. 下载nexus3的镜像

    sudo docker pull sonatype/nexus3
    
  2. 将容器内部/var/nexus-data挂载到主机/root/nexus-data目录

    docker run -d -p 9009:8081 --name nexus -v /lei.zou/home/nexus3/nexus-data:/nexus-data --restart=always sonatype/nexus3
    
    # 内存默认大于2G 可以限制一下内存(增加下面内容)
    -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"
    # 如下
    docker run -d -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" -p 9009:8081 --name nexus -v /lei.zou/home/nexus3/nexus-data:/nexus-data --restart=always sonatype/nexus3
    
  3. 启动后查看登录密码

    进入容器, /nexus-data/admin.password 打开查看

    sudo docker exec -it 4fb2e9830d4a /bin/bash
    
  4. 登录

配置仓库

远程仓库,本地仓库,私服仓库,分组仓库

  1. 配置aliyun 代理仓库
  • Name: aliyun-nexus
  • Version pollcy: Release
  • Remote storate: http://maven.aliyun.com/nexus/content/groups/public/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ULRQ5dL-1669203733798)(Docker搭建Maven私服.assets/1656899196498.png)]

  1. 配置 Spring 仓库代理 (版本策略为Release)
  • Name: spring-milestone
  • Version pollcy: Release
  • Remote storate: https://repo.spring.io/milestone
  1. 配置 Spring 仓库代理(版本策略为Snapshot)
  • Name: spring-snapshot
  • Version pollcy: Snapshot
  • Remote storate: https://repo.spring.io/snapshot
  1. 创建一个自己的仓库用于使用 这里使用 maven-release

    需要将改成

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q867syln-1669203733799)(Docker搭建Maven私服.assets/1657673702526.png)]

配置完成后无法直接使用,需要进一步配置

  • 点击 设置按钮 -> Repository -> Repositories
  • 选择 maven-public,修改 Group如下图所示(注意先后顺序)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MnNmYVuY-1669203733800)(Docker搭建Maven私服.assets/1657673792875.png)]

配置计划任务

实际开发过程中可能每天都会产生大量的快照版本,每个快照都会占用相应的空间,历史快照版本就没有什么意义了应该定时清理以释放多占用的空间资源,我们可以通过 Tasks 计划任务选项定期清理旧的快照版本

点击>设置按钮>System>Tasks

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-78ob2Ngp-1669203733800)(Docker搭建Maven私服.assets/1656900112892.png)]

Maven配置

将本地的仓库的jar包批量写入maven私服

  1. 本地maven打包zip

    打包上传到liunx服务器并解压

  2. 在解压后的文件夹中建立批量导入maven的脚本

    #!/bin/bash
     
    # copy and run this script to the root of the repository directory containing files
    
    # this script attempts to exclude uploading itself explicitly so the script name is important
    
    # Get command line params
    while getopts ":r:u:p:" opt; do
    	case $opt in
    	r) REPO_URL="$OPTARG"
    	;;
    	u) USERNAME="$OPTARG"
    	;;
    	p) PASSWORD="$OPTARG"
    	;;
    	esac
    	done
    	find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
    
    
  3. 赋予权限然后执行命令

    sh mavenimport.sh  -u admin -p uaes,123 -r http://174.34.90.112:9009/repository/maven-releases/
    
  4. 执行成功后就可以在仓库中看到这些导入的文件

    405异常如下图:是地址写错,注意http://174.34.90.112:9009/repository/maven-public/ 后面的应该是hosted的地址

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-inQccxIh-1669203733800)(Docker搭建Maven私服.assets/1657674233565.png)]

    正常应该:显示了导入的文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5CTMejit-1669203733801)(Docker搭建Maven私服.assets/1657675782740.png)]

配置setting.xml与私服实现认证

  • 配置镜像就可以从该仓库下载了
	<mirror>
      <id>nexus(112)</id>
      <mirrorOf>*</mirrorOf>
      <name>nexus(112)</name>
       <url>http://174.34.90.112:9009/repository/maven-public/</url>
    </mirror>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值