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

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.mrgr.cn/news/43607.html

相关文章:

  • Singleton(单例模式)
  • 队列的实现与讲解
  • 量子计算:下一次科技革命的引擎
  • 1分钟搞懂K8S中的NodeSelector
  • 银从法律法规_20
  • HugginngFace的Trainer的常见用法
  • Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)
  • 二叉搜索树 (BST) 节点插入、查找、删除、获取最大值、最小值和中序遍历排序等功能
  • 每日一题|134. 加油站|循环数组单次遍历
  • PriorityQueue分析
  • 数据结构阶段测试2的一点小补充
  • FRP搭建内网穿透:云服务端 + 家用Linux/Windows主机【2024】
  • 【ShuQiHere】Linux 系统内存清理指南:优化内存使用,提升系统性能
  • centos7安装配置python3环境
  • 【C++ 真题】B2049 最大数输出
  • CPU和GPU的区别
  • springboot中配置优先级
  • 基于Node2Vec的图嵌入实现过程
  • 《普林斯顿数学分析读本》中文版目录
  • UE4 材质学习笔记03(翻书(Flipbook)动画/环境混合)