• DockerCompose - 部署 Nexus 私服


    这里只是记录一下服务端的搭建及配置过程,客户端需要单独配置 maven 的 setting.xml 文件:Maven - 客户端 Nexus 配置

    什么是 Nexus

    Nexus 是一个强大的 Maven 私服仓库。现在已经不仅仅是 Maven 私服了,同时支持 docker、apt、bower、conda、go、helm、npm、pypi、yum 等依赖管理

    为什么需要 Nexus

    1. 比如在内网环境中开发,或者网速比较慢的情况下,我们拉取项目依赖可以从私服拉取,私服去中央仓库拉取。当拉取依赖时,如果私服中没有,再去中央仓库中找,不需要每个开发人员都去中央仓库下载,只需要私服下载一次即可。
    2. 在项目多人协同开发中,比如我们开发了一个公共的工具类 jar 包,在多个项目组中都可以引用,我们又不希望把这个 jar 包推送到公共的 maven 仓库中,此时就需要私服来存储、分发我们的私有 jar 包。

    部署 Nexus

    Docker Hub 仓库

    version: "3.9"
    services:
      nexus:
        image: sonatype/nexus3:latest
        container_name: nexus
        restart: always
        volumes:
          # 自定义数据卷位置为当前目录下的 data 目录
          - ./data:/nexus-data
        ports:
          - "8081:8081"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    注意: 启动时如果出现权限问题,可以使用 chmod 777 /usr/local/docker/nexus/data 赋予数据卷可读写权限

    仓库介绍

    代理仓库(proxy)

    • 代理第三方仓库
      • maven-central
      • nuget.org-proxy
    • 版本策略
      • Release:正式版本
      • Snapshot:快照版本
      • Mixed:混合模式
    • 布局策略
      • strict:严格
      • Permissive:宽松

    宿主仓库(hosted)

    • 存储本地上传的组件和资源
      • maven-release
      • maven-snapshot
      • nuget-hosted
    • 部署策略
      • Allow Redeploy:允许重新部署
      • Disable Redeploy:禁止重新部署
      • Read-Only:只读
    • 布局策略
      • strict:严格
      • Permissive:宽松

    创建代理仓库

    由于我们国内一般使用阿里云代理仓库,而且开发一般都会使用到 spring 框架,所以我们需要配置三个代理仓库:aliyun-nexusspring-milestonespring-snapshot,配置过程如下:

    在这里插入图片描述
    在选择仓库页面选择:maven2(proxy)

    在这里插入图片描述

    • 配置阿里云仓库代理(版本策略为 Release)
      • Name:aliyun-nexux
      • Version policy:Release
      • Remote storage:http://maven.aliyun.com/nexus/content/groups/public

    在这里插入图片描述

    • 配置 spring 的 Release 仓库
      • Name:spring-milestone
      • Version policy:Release
      • Remote storage:https://repo.spring.io/milestone
    • 配置 spring 的 Snapshot 仓库
      • Name:spring-snapshot
      • Version policy:Snapshot
      • Remote storage:https://repo.spring.io/snapshot

    配置分组仓库

    通过配置 maven-public 分组仓库将上面几个代理仓库统一为一个仓库入口,同时调整顺序:

    在这里插入图片描述

    配置定时任务

    这里我们配置一个自动删除快照版本的定时任务:

    在这里插入图片描述
    配置任务详情:

    在这里插入图片描述

    手动上传依赖

    非开源项目可能没办法从中央仓库拉取项目,这时我们可以手动上传。
    建议把第三方 jar 包单独归类于一个仓库中,便于维护和管理(maven-3rd)。

    1、创建仓库 maven-3rd

    在这里插入图片描述
    2、选择上传仓库 maven-3rd
    在这里插入图片描述
    3、选择 jar 包、并填写 GAV 等信息

    在这里插入图片描述
    4、上传完成即可在仓库 maven-3rd 中看到对应的 jar 信息

    在这里插入图片描述

  • 相关阅读:
    Java设计模式-工厂模式(FactoryPattern)
    怎么恢复电脑删除的文件?文件恢复,主要看这几个方法
    Node.js学习19~37(模块化)
    Elasticsearch安全又双叒叕出问题? 搜索引擎该怎么选
    Java学习笔记(十八)
    计算机毕业设计node+vue基于微信小程序的西餐外卖系统
    yarn安装及使用
    Vue3中的pinia使用,入门教程
    C/C++ 简单排序方式之选择排序
    python调用接口脚本
  • 原文地址:https://blog.csdn.net/qiaohao0206/article/details/125471721