nexus搭建maven私服

server/2025/1/14 21:56:12/

说到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.ppmy.cn/server/158385.html

相关文章

HarmonyOS鸿蒙-@State@Prop装饰器限制条件

一、组件Components级别的状态管理: State组件内状态限制条件 1.State装饰的变量必须初始化,否则编译期会报错。 // 错误写法,编译报错 State count: number;// 正确写法 State count: number 10; 2.嵌套属性的赋值观察不到。 // 嵌套的…

vue3之router路由

路由 1、对路由的理解 2、基本使用 安装路由器扩展包 npm i vue-router 创建组件&#xff1a; Home.vue <template><div class"home"><img src"https://oss.fmy90.cn/fmy/public/4db8dec4d2eb31b8b0456cb42a907941.png" alt""…

python milvus 如何检查有多少个collection 以及多少个index,多少个database

在 Milvus 中,可以通过 Python 客户端(`pymilvus`)来检查当前有多少个集合(Collection)、索引(Index)和数据库(Database)。以下是具体的方法: --- ### 1. 检查有多少个集合(Collection) 使用 `list_collections()` 方法可以列出当前连接的所有集合。 ```python…

【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!

这里写目录标题 什么是Selenium&#xff1f;Selenium基础用法详解环境搭建编写第一个Selenium脚本解析脚本脚本执行结果常用的元素定位方法常用的WebDriver方法等待机制 Selenium高级技巧详解页面元素操作处理弹窗和警告框截图和日志记录多窗口和多标签页操作 一个实战的小demo…

用python实战excel和word自动化

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 python实现excel和word自动化--批量处理 前言--需求快要期末了需要&#xff0c;提交一个年级的学生成绩数据&#xff0c;也就是几百份。当前我们收集了一份excel表格&#xf…

给DevOps加点料:融入安全性的DevSecOps

从前&#xff0c;安全防护只是特定团队的责任&#xff0c;在开发的最后阶段才会介入。当开发周期长达数月、甚至数年时&#xff0c;这样做没什么问题&#xff1b;但是现在&#xff0c;这种做法现在已经行不通了。 采用 DevOps 可以有效推进快速频繁的开发周期&#xff08;有时…

E12.【C语言】练习:求两个数的最大公约数

目录 1.枚举 2.辗转相除法 1.枚举 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int a 0;int b 0;int tmp 0;scanf("%d %d", &a, &b);if (a < b){for (int i1; i < a; i){if (0a% i && 0b%i)tmp i;}}if …

vue使用自动化导入api插件unplugin-auto-import,避免频繁手动导入

‌unplugin-auto-import‌是一个现代的自动导入插件&#xff0c;旨在简化前端开发中的导入过程&#xff0c;减少手动导入的繁琐工作&#xff0c;提升开发效率。它支持多种构建工具&#xff0c;包括Vite、Webpack、Rollup和esbuild&#xff0c;并且可以与TypeScript配合使用&…