当前位置: 首页 > article >正文

Nexus制品库搭建(maven)

Nexus 是一个强大的仓库管理器,它支持多种类型的仓库,包括 Maven、NuGet、PyPI、R、Docker 等。以下是基于Docker搭建 Nexus 3.x 版本的 Maven 制品库搭建步骤:

一.下载镜像

镜像地址及tag查询:https://hub.docker.com/r/sonatype/nexus3/tags(需要魔法)

以下载tag为latest的镜像为例:docker pull sonatype/nexus3:3.66.0

二.创建并运行nexus容器

1.创建容器

新建docker volume:docker volume create nexus-data

启动并运行容器:docker run -d --restart=always -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3:3.66.0

观察容器日志,见到如下日志后nexus即启动成功

如机器内存不足,可调整容器参数

-e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx512m -XX:MaxDirectMemorySize=128m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"

2.容器启动成功后,输入http://ip:8081,见到如下弹框:

admin密码在容器内/nexus-data/admin.password文件中

使用命令进入容器查看/nexus-data/admin.password文件,

docker exec -it /bin/bash nexus

cat /nexus-data/admin.password

3.输入用户名和密码登陆后,需要重新修改admin用户的密码

4.选择是否匿名访问,选择否

三、配置nexus

1.为了便于统一管理,可新建Blob Store

类型选择File,输入名称后Path会自动带出,点击保存,在后续新增repository时选择新建的blob store

2.nexus仓库

①nexus仓库有三种类型:proxy(代理仓库)、hosted(本地仓库)、group(组仓库)

proxy(代理仓库)用于代理远程的公共仓库,用户连接私服,私服自动去中央仓库下载依赖;

hosted(本地仓库)用于部署自己的jar到这个类型的仓库,包括releases和snapshot两部分;

group(组仓库)用于合并多个proxy、hosted仓库,组合对外提供服务;

②以maven仓库为例,新建仓库时指定仓库通用属性,如名称、版本策略(该仓库存储release包、snapshot包还是两种均可存储)、存储位置(选择存储区域,方便文件同一管理)

③对于不同类型的仓库,在新增时需要设置不同的参数

新建proxy代理仓库时,需指定远程存储url:

新建hosted本地仓库时,需指定部署策略:

部署策略主要分3种策略

Allow redeploy:允许同一个版本号重复推送, nexus会以时间进行区分
Disable redeploy:不允许同一个版本号下重复推送
Read-Only:不允许提交任何版本

新建group组仓库时,需指定成员仓库及成员仓库的顺序

四、配置maven

1.maven全局配置settting.xml

配置server与mirror,如果nexus没有开启匿名访问,则server中需要配置账号与密码,server与mirror的id需要一致,此时在idea中编译项目,在代理仓库中能看到已经从中央仓库中拉取了项目所需jar包依赖

<servers>
    <server>  
        <id>custom-proxy</id>  
        <username>xxx</username>  
        <password>xxx</password>  
    </server>   
    <server>  
        <id>custom-hosted</id>  
        <username>xxx</username>  
        <password>xxx</password>  
    </server>
    <server>  
        <id>custom-group</id>  
        <username>xxx</username>  
        <password>xxx</password>  
    </server>   
</servers>

<mirrors>     
    <mirror>  
        <id>custom-group</id>  
        <name>custom-group</name>  
        <url>http://ip:8081/repository/custom-group/</url>  
        <mirrorOf>central</mirrorOf>  
    </mirror>    
</mirrors> 

2.项目pom.xml文件配置

需注意repository的id属性需要与setting.xml中server中的id属性一致

<distributionManagement>
    <repository>
       <id>custom-hosted</id>
       <name>Nexus Hosted Repository</name>
       <url>http://ip:8081/repository/custom-hosted/</url>
    </repository>
</distributionManagement>

此时在idea中deploy后,可看到hosted仓库中已有对应依赖jar包;在开发过程中,可将共用的依赖包上传至nexus私服,其他研发同学可直接依赖私服中的jar模块


http://www.kler.cn/news/334505.html

相关文章:

  • 汇编语言笔记2
  • java数据类型转换和注释
  • esp8266 at指令链接wifi时一直connect disconnest
  • 信号用wire类型还是reg类型定义
  • 2024年,现在做全职的AI产品经理,时机对不对?
  • VMware ESXi更改https的TLS协议版本
  • 植物叶片病害检测数据集 5100张 29类 带标注 voc yolo
  • 利用 Python 爬虫采集 1688商品详情
  • 【D3.js in Action 3 精译_028】3.4 小节 DIY 实战:使用 Observable 在线绘制 D3 条形图
  • 问:TCP长连接vs短连接有哪些差异?
  • Unity MVC框架演示 1-1 理论分析
  • VSCode python代码颜色调整与pycharm对齐
  • 项目-坦克大战笔记-墙体销毁以及人机销毁
  • vue-live2d看板娘集成方案设计使用教程
  • sqlalchemy 加速数据库操作
  • Uniapp API
  • 李飞飞谈AI+3D发展:3D/4D AI将成为下一个重要前沿
  • NVIDIA网卡系列之ConnectX-4规格信息(50G-PCIe 3.0x8-8PF256VF-2015年发布)
  • yolov8/9/10模型在安全帽、安全衣检测中的应用【代码+数据集+python环境+GUI系统】
  • RCE_绕过综合