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

nexus搭建maven私服

说到maven私服每个公司都有,比如我上一篇文章介绍的自定义日志starter,就可以上传到maven私服供大家使用,每次更新只需deploy一下就行,以下就是本人搭建私服的步骤

使用docker安装nexus

#拉取镜像
docker pull sonatype/nexus3:latest

#创建挂在目录,容器数据与宿主机互通,数据持久化到宿主机
#容器重启数据不会丢失,想想如果是mysql,不挂载的话重启容器就没了
mkdir /var/dockerdata/nexus/nexus-data
mkdir /var/dockerdata/nexus/nexus-logs

#授权,因为启动容器时nexus会往宿主机目录写数据
chmod o+rwx -R /var/dockerdata/nexus/nexus-data
chmod o+rwx -R /var/dockerdata/nexus/nexus-logs

#启动容器,建议使用docker-compose来搞
docker run -d \
  --name nexus3 \
  -p 6031:8081 \
  --restart=always \
  -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" \
  -v /var/dockerdata/nexus/nexus-data:/nexus-data \
  -v /var/dockerdata/nexus/nexus-logs:/nexus-logs \
  -e TZ=Asia/Shanghai \
  sonatype/nexus3:latest

#nexus3 默认启动是2703M内存,为了因为内存不够导致启动失败或内存占用过多所以指定内存
-e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"

访问ip:6031看到这个界面就成功了
在这里插入图片描述
登录重置密码,会提示密码在哪个目录的,直接去提示的目录找就行
在这里插入图片描述
分别创建release,snapshot,center,public仓库。
release:Release 版本是一个正式发布的版本,表示该版本已经经过测试和验证,不会再有频繁的变化。
snapshot:Snapshot 版本是一种开发中的版本,表示该版本尚未正式发布,可能会频繁发生变化,每次构建时,Maven 会检查远程仓库中是否有新的 Snapshot 版本可用。如果有,Maven 会下载最新的 Snapshot 版本。
center:远程仓库,私服不存在就会通过这个仓库下载,一般都配置阿里的仓库镜像
public:公共仓库,nexus上创建时选混合类型

创建release仓库
在这里插入图片描述
创建snapshot仓库
在这里插入图片描述
创建中央仓库
在这里插入图片描述

创建公共仓库
在这里插入图片描述
创建完了就这样,其他的可以删掉了
在这里插入图片描述
修改maven的setting.xml,填写nexus服务器信息
在这里插入图片描述
mirror中的url为nexus私服的公共仓库,id与server中的id要一致
在这里插入图片描述
把项目打包上传到nexus,pom文件配置distributionManagement标签,其中的id要与setting.xml中的id一致
在这里插入图片描述如果想打包release版本,就要把version标签的snapshot去掉
在这里插入图片描述
去nexus仓库看已经上传上去了
在这里插入图片描述
引入release版本的话直接在这里复制坐标
在这里插入图片描述
在别的工程引入成功
在这里插入图片描述
这里能成功引入是因为上面我们在maven的setting.xml里配置了nexus仓库的地址,它会从这个地址去找依赖,私服找不到就会根据ming-center仓库配置的中央地址去下载。


http://www.kler.cn/a/488538.html

相关文章:

  • RocketMQ 和 Kafka 有什么区别?
  • L1G5000 XTuner 微调个人小助手认知
  • “深入浅出”系列之QT:(6)如何在一个项目中调用另一个项目
  • 递归构建树菜单节点
  • Personal APP
  • 【Leetcode 热题 100】20. 有效的括号
  • CI/CD 流水线
  • css小知识:如何使用字体包
  • 高通,联发科(MTK)等手机平台调优汇总
  • QT转到槽报错The class containing “Ui::MainWindow“ could not be found in...
  • 二、智能体强化学习——深度强化学习核心算法
  • 银河麒麟编译QXlsx,使用Qt5.14.2
  • C++并发编程之基于锁的数据结构的适用场合与需要考虑和注意的问题
  • 【深度学习】核心概念-特征学习(Feature Learning)
  • Apifox=Postman+Swagger+Jmeter+Mock
  • 文生图模型的技术原理、训练方案与微调方案
  • js实现md5加密
  • 【GO】GORM 使用教程
  • Oracle SQL优化过程一则以及group by少见用法报错点
  • unity adb 连不上安卓手机?
  • Vue 开发者的 React 实战指南:状态管理篇
  • 大语言模型是如何训练出来的?
  • axios的基本使用
  • 微信小程序实现拖拽盒子效果
  • 【UE5 C++课程系列笔记】26——多线程基础——ParallelFor的简单使用
  • vue的路由守卫逻辑处理不当导致部署在nginx上无法捕捉后端异步响应消息等问题