使用Nexus搭建远程maven仓库
1、Nexus介绍
Nexus 是 Sonatype 公司的一款用于搭建私服的产品,使用非常广泛。在早期,我们都拿Nexus当maven私服仓库,后来,随着版本不断更新,它支持的数据类型越来越多,比如npm仓库,nuget仓库,ruby仓库,docker镜像仓库等等。
npm仓库:用于前端开发框架React、Vue、Angular等的依赖管理。
nuget仓库:用于.Net的依赖管理。如asp.net、winforms等。
ruby仓库:用于Ruby on Rails框架的依赖管理。
docker镜像仓库:将容器打包成镜像,存储镜像。镜像通常由“代码、运行库、配置文件”组成。
2、Nexus下载安装
安装包下载网址:https://www.sonatype.com/products/sonatype-nexus-oss-download
历史版本查看网址:https://help.sonatype.com/en/download-archives---repository-manager-3.html
3、Nexus安装
我是安装在本地的一个Ubuntu虚拟机上的。因为Nexus是用java开发的,因此需先安装java环境。
3.1、安装jdk
可以通过uname -m命令查看Ubuntu位数,并下载对应的jdk。
Java Archive Downloads - Java SE 8u211 and later | Oracle 中国
通过Xftp把java安装包上传到服务器上。
#解压
tar -zxvf jdk-8u441-linux-x64.tar.gz#编辑配置文件profile
vim /etc/profile#在配置文件中增加jdk环境变量
#jdk配置环境变量
export JAVA_HOME=/home/wulc/Desktop/Java/jdk1.8.0_441
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
#wq保存#让profile文件追加的jdk环境变量生效
source /etc/profile#验证
java -version
3.2、安装Nexus
我下载的是:Download Archives - Repository Manager 3
通过Xftp把Nexus安装包上传到linux服务器上。
#解压
tar -zxvf nexus-3.61.0-02-unix.tar.gz
nexus-3.61.0-02是系统包,是nexus运行程序。
sonatype-work是nexus的工作区间,仓库文件存储位置。
#进入nexus-3.61.0-02下的bin目录
cd nexus-3.61.0-02
cd bin#启动nexus
./nexus start#查看启动状态
./nexus status#停止nexus
./nexus stop
访问:nexus-3.61.0-02/etc/nexus-default.properties,可以修改nexus启动端口号。
vim nexus-default.properties
浏览器输入:http://192.168.10.104:8081/
登录一下nexus
4、Nexus使用
4.1、上传包到Maven仓库
可以直接在页面上上传,不推荐这么用,一般上传都是在项目里面maven setting配置,再上传的。而且通常我们上传的maven包,里面不仅仅只包含一个jar包,还有很多附属数据。
仓库管理。这里可以看到nexus的所有仓库。
仓库主要分为三种类型:
- proxy,代理仓库,也就是对外部仓库的代理,这个仓库是只读的,当PC端访问nexus库,没有这个依赖的时候,会请求proxy库配置的远程仓库,如远程仓库有,会下载到nexus(一个人从远程中央仓库下载好了依赖,其他人再次访问,无需访问远程仓库,直接从nexus可以获取)。默认使用的maven的仓库,访问速度比较慢,可以更换为国内大型镜像仓库(比如阿里,腾讯等等,阿里nexus仓库地址:http://maven.aliyun.com/repository/public)。
- hosted,本地托管仓库,也就是所谓私库了,可以上传本地jar包到这个仓库。在创建的时候,需要注意:将 Deployment Policy 改成 Allow Redeploy(允许重复发布,覆盖同版本的jar包)。
- group,仓库组,这是一个容器,它可以包含多个proxy,hosted或其他group仓库,它的作用就是让开发人员引用的时候只要填一个URL,访问配置在该group下所有的库,这也是只读的。
hosted仓库存储类型分三种:
-
snapshot,存储快照(未发布的版本)。开发中的不稳定版本(如
1.0.0-SNAPSHOT
),允许重复部署。启用Allow redeploy
选项。 -
releases,存储发布的版本。稳定的正式版本(如1.0.0),不可重复部署,要设置为禁止覆盖,在Nexus中需关闭
Allow redeploy
选项(防止意外覆盖)。 -
mixed,混合存储模式。同时允许Release和Snapshot版本,比较灵活,要确保版本号命名规范(如强制 -SNAPSHOT后缀)。
4.2、创建仓库
Step1、先创建一个存储位置:Blob Stores
Step2、创建仓库
Step3、创建hosted仓库
Step4、创建proxy仓库
对新建的两个仓库进行分组。
4.3、Maven配置和使用
Step1、上传jar包到nexus仓库
setting.xml配置
在pom.xml里面新增配置
<!-- 上传需要的配置到nexus仓库 --><distributionManagement><repository><id>wulc-nexus</id>
<!-- 正式版--><url>http://192.168.10.104:8081/repository/maven-releases/</url></repository><snapshotRepository><id>wulc-nexus</id>
<!-- 快照版--><url>http://192.168.10.104:8081/repository/maven-snapshots/</url></snapshotRepository></distributionManagement>
会根据上方<version>1.0-SNAPSHOT</version>中的版本号去下载对应的jar包。
pom.xml文件配置好后,执行mvn deploy对项目进行打包并上传。
打包上传成功
因为这个项目的<version>是1.0-SNAPSHOT,所以可以在snapshots仓库看到刚才打包上传的项目。
Step2、使用nexus中的jar包
在pom.xml文件中新增以下配置
<!-- 拉取需要的配置 --><repositories><repository>
<!-- id和name可以随便配置,因为在setting文件中配置过了--><id>wulc-nexus</id><name>wulc-nexus</name><url>http://192.168.10.104:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
<dependency><groupId>org.example</groupId><artifactId>TestAopAuth</artifactId><version>1.0-SNAPSHOT</version>
</dependency>
于是我们就可以直接在wulc-test这个项目中使用TestAopAuth提供的功能了。
5、总结
在企业开发的过程中,不是所有公司都能直接访问外网。在这样情况下,就需要在局域网内找一台有外网访问权限的服务器,搭建nexus私服仓库,开发人员连到这台私服上,通过搭建的nexus私服访问远程仓库。内网相比外网更安全,外网可能会受到公开的网络攻击,并且传输速度也远低于内网。
有一些我们企业中自研的第三方jar包也会上传到maven仓库供其他同事使用,若上传至公网,数据会有泄露的风险,若在私服,数据安全性会大大提高!
6、参考资料
【保姆级教程】nexus私服仓库搭建,如何使用,如何配置,页面各种功能介绍及清除策略_哔哩哔哩_bilibili【ubuntu连接xshell最新2024史上最全小白教程】_xshell连接ubuntu-CSDN博客
相关文章:
使用Nexus搭建远程maven仓库
1、Nexus介绍 Nexus 是 Sonatype 公司的一款用于搭建私服的产品,使用非常广泛。在早期,我们都拿Nexus当maven私服仓库,后来,随着版本不断更新,它支持的数据类型越来越多,比如npm仓库,nuget仓库&…...
坚鹏:工行《DEEPSEEK赋能银行智能办公及数字化营销服务》培训
中国工商银行上海市分行《DEEPSEEK赋能银行智能办公及数字化营销服务》培训圆满落幕 中国工商银行作为全球领先的综合性金融服务集团,始终走在金融科技创新的前沿。截至2024年末,工商银行总资产规模突破40万亿元,连续多年稳居全球银行榜首。在…...
操作系统OS是如何指挥外围设备的呢?
众所周知,OS的职责之一就是管理外围设备,比如常见的磁盘、硬盘、显示器、麦克风等,但并不是外围设备的一切都必须由OS管理,比如无线鼠标上的开关键,当你通过它关闭鼠标时,这个操作并不会经过OS,…...
实现Sentinel与Nacos的规则双向同步
实现Sentinel与Nacos的规则双向同步:完整解决方案 前言 在微服务架构中,流量控制和熔断降级是保障系统稳定性的重要手段。阿里开源的Sentinel作为一款轻量级的流量控制组件,常被用于实现这些功能。然而,在实际生产环境中&#x…...
2025五一杯数学建模A题:支路车流量推测问题,思路分析+模型代码
一持续更新,见文末名片 二、问题背景 想象一下,城市的道路如同一张巨大的脉络图,主路如同大动脉,配备着车流量监测设备,能实时记录车流量数据,就像我们身体的传感器一样。然而,当多条支路像毛细…...
Linux51 安装baidunetdisk yum install rpm -ivh
推测网卡 感觉是不是以前哪里设置了下 deepseek说的这个设置 我没有设置过 这个不会弄啊 准备用虚拟机安个软件 神奇 换了这个命令又能打开网卡了 参考了这个 参考 之前地址我觉得配置错误 动态分配 我就删掉ip地址了 路由表中无ip地址吗? OK 卸载 运…...
【Python-Day 8】从入门到精通:Python 条件判断 if-elif-else 语句全解析
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
若依 FastAPI + Vue3 项目 Docker 部署笔记( 启动器打包教程)
本文记录了将 start.bat 打包成 .exe 启动器的详细教程,适合项目交付或导师演示用。 🧭 一、如何将 start.bat 打包为启动器 .exe(含图标 自动打开浏览器) ✅ 1. 创建三大功能脚本 start.bat → 启动项目(docke…...
Lebesgue测度和积分理论发展概观
1. 发展背景 积分可以从两个角度来理解。首先,积分是微分的逆函数,因此积分是反导数(译注:但积分是独立于微分的,不能微分的函数也可能可积)。然而,这是一个非常抽象的概念。其次,两点之间的积分可以看…...
算法题题型总结
二叉树题型 解法综述:二叉树的解法,基本上都是依赖遍历,再加上递归的思路来做的。那递归又分为深度优先和广度优先。深度优先算法,前序,中序,后序。广度优先,利用先进先出队列,一层…...
网络编程——TCP和UDP详细讲解
文章目录 TCP/UDP全面详解什么是TCP和UDP?TCP如何保证可靠性?1. 序列号(Sequence Number)2. 确认应答(ACK)3. 超时重传(Timeout Retransmission)4. 窗口控制(Sliding Win…...
Qt多线程TCP服务器实现指南
在Qt中实现多线程TCP服务器可以通过为每个客户端连接分配独立的线程来处理,以提高并发性能。以下是一个分步实现的示例: 1. 自定义工作线程类(处理客户端通信) // workerthread.h #include <QObject> #include <QTcpSo…...
【经管数据】A股上市公司资产定价效率数据(2000-2023年)
数据简介:资产定价效率是衡量市场是否能够有效、准确地反映资产内在价值的重要指标。在理想的市场条件下,资产的市场价格应该与其内在价值保持一致,即市场定价效率达到最高。然而,在实际市场中,由于信息不对称、交易摩…...
打包 Python 项目为 Windows 可执行文件:高效部署指南
Hypackpy 是一款由白月黑羽开发的 Python 项目打包工具,它与 PyInstaller 等传统工具不同,通过直接打包解释器环境和项目代码,并允许开发者修改配置文件以排除不需要的内容,从而创建方便用户一键运行的可执行程序。以下是使用 Hyp…...
【QNX+Android虚拟化方案】138 - USB 底层传输原理
【QNX+Android虚拟化方案】138 - USB 底层传输原理 1. USB 数据包的格式2. 数据传输事务过程3. 四种传输类型3.1 批量传输3.2 中断传输3.3 实时传输3.4 控制传输4. USB 设备枚举过程4.1 Attached: 发送控制传输,读取设备描述符4.2 Power -> Default 这个状态无数据传输4.3 …...
QT6 源(66)篇三:阅读与注释类 QAbstractSpinBox ,这是螺旋框的基类,附上源码
(9)所有代码来自于头文件 qabstractspinbox . h : #ifndef QABSTRACTSPINBOX_H #define QABSTRACTSPINBOX_H#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qwidget.h> #include <QtGui/qvalidator.h>/* QT_CONFIG宏实…...
MCP入门
什么是mcp mcp(model context protocol,模型上下文协议) 标准化协议:让大模型用统一的方式来调用工具,是llm和工具之间的桥梁 A2A:Agent-to-Agent协议 mcp通信机制 提供mcp服务查询的平台 具有工具合集…...
FPGA中级项目8———UART-RAM-TFT
FPGA中级项目8———UART-RAM-TFT UART串口我们学过,RAM IP核学过,TFT同样也学过。那如何将它们联合起来呢? 言简意赅:实现从串口写入图像到RAM并且由TFT显示屏输出! 首先第一步,便是要将UART_RX与RAM之间…...
Ocelot\Consul\.NetCore的微服务应用案例
案例资料链接:https://download.csdn.net/download/ly1h1/90733765 1.效果 实现两个微服务ServerAPI1和ServerAPI2的负载均衡以及高可用。具体原理,看以下示意图。 2.部署条件 1、腾讯云的轻量化服务器 2、WindowServer2016 3、.NETCore7.0 4、Negut …...
数值求解Eikonal方程的方法及开源实现
Eikonal方程是一类非线性偏微分方程,形式为 ( |\nabla u(x)| f(x) ),常见于波传播、几何光学、最短路径等问题。以下是数值求解Eikonal方程的方法及开源实现参考: 一、数值求解方法 有限差分法(FDM) 快速行进法&#…...
Http详解
🧱 一、从 TCP 三次握手到访问网页:两层过程 🧩 1. TCP 三次握手(网络传输层) 这是 建立连接 的前提,跟 HTTP 无关,但 HTTP 要依赖它。 举例:你打开浏览器访问 https://example.c…...
实验五 完整性
一、引言 本次上机实验的目的主要是让学生掌握数据库完整性的三大类型(实体完整性、参照完整性、用户自定义完整性),并通过实际建库建表和数据操作加深理解。 下面将为分别展示 student、course、sc 三个表的创建语句,并设置对应的…...
《原码、反码与补码:计算机中的数字奥秘》
🚀个人主页:BabyZZの秘密日记 📖收入专栏:C语言 🌍文章目入 一、原码:最直观的表示法1. 正数的原码2. 负数的原码3. 原码的特点 二、反码:原码的“反转”1. 正数的反码2. 负数的反码3. 反码的特…...
论文笔记——QWen2.5 VL
目录 引言架构创新数据整理与训练策略性能与基准测试精细感知能力应用与现实世界影响与现有模型比较结论 引言 视觉理解和自然语言处理的集成一直是人工智能研究的一个重要焦点,促成了日益复杂的视觉语言模型 (VLMs) 的发展。由阿里巴巴集团 Qwen 团队开发的 Qwe…...
前端HTML基础知识
1.HTML介绍 HTML(HyperText Markup Language,超文本标记语言)是构成网页的基本元素,是一种用于创建网页的标准化标记语言。HTML不是一种编程语言,而是一种标记语言,通过标签来描述网页的结构和内容。 超文本:超文本是…...
程序代码篇---ESP32云开发
文章目录 前言 前言 本文简单介绍了实现 ESP32-S3 传感器数据上传至云平台 手机远程控制电机 的完整方案,涵盖推荐的云平台、手机端。 一、推荐云平台及工具 云平台选择 阿里云 IoT 平台 优势:国内稳定、支持大规模设备接入、提供完整设备管理及安全…...
【C语言】文本操作函数fseek、ftell、rewind
一、fseek int fseek ( FILE * stream, long int offset, int origin ); 重新定位文件指针的位置,使其指向以origin为基准、偏移offset字节的位置。 成功返回0,失败返回非零值(通常为-1)。 origin有如下三种:分别是…...
ARM ASM
ARM ASM ARM寄存器集 列出了ARM的16个程序员可见寄存器(r0~r15)以及它的状态寄存器。 ARM共有14个通用寄存器r0~r13。寄存器r13被保留用作栈指针,r14存放子程 序返回地址,r15为程序计数器。 由于r15能够被程序员访问,…...
【五一培训】Day1
注: 1. 本次培训内容的记录将以“Topic”的方式来呈现,用于记录个人对知识点的理解。 2. 由于培训期间,作者受限于一些现实条件,本文的排版及图片等相关优化,需要过一段时间才能完成。 Topic 1:使用DeepS…...
SpringBoot使用分组校验解决同一个实体对象在不同场景下需要不同校验规则的问题
背景 添加分类的接口不需要id字段,但更新分类的接口需要id字段,当在id字段上使用NotNull注解时,会导致使用添加分类接口报id字段不能为空的错误 解决 定义分组 pojo/Category.java // 如果没有指定分组,则默认属于Default分组…...
Hibernate与MybatisPlus的混用问题(Invalid bound statement (not found))
当项目里已经有了Hibernate后: spring:jpa:hibernate:ddl-auto: updateshow-sql: trueproperties:hibernate:format_sql: true 再配置yml文件就会失效: mybatis-plus:mapper-locations: classpath:mapper/*.xml# 全局策略global-config:db-config:# 自…...
【音视频】ffplay数据结构分析
struct VideoState 播放器封装 typedef struct VideoState {SDL_Thread *read_tid; // 读线程句柄AVInputFormat *iformat; // 指向demuxerint abort_request; // 1时请求退出播放int force_refresh; // 1时需要刷新画⾯,请求⽴即刷新画⾯的意思int paused; // 1时…...
PV操作:宣帧闯江湖武林客栈版学习笔记【操作系统】
P,V,S江湖话翻译 P(申请) 江湖侠客拔剑大喊“掌柜的,给我一间上房!”(申请资源,房不够就蹲门口等)-要房令牌 V(释放) 江湖侠客退房时甩出一锭银子,大喊“…...
精品推荐-湖仓一体电商数据分析平台实践教程合集(视频教程+设计文档+完整项目代码)
精品推荐,湖仓一体电商数据分析平台实践教程合集,包含视频教程、设计文档及完整项目代码等资料,供大家学习。 1、项目背景介绍及项目架构 2、项目使用技术版本及组件搭建 3、项目数据种类与采集 4、实时业务统计指标分析一——ODS分层设计与…...
对计网考研中的信道、传输时延、传播时延的理解
对计网考研中的信道、传输时延、传播时延的理解 在学习数据链路层流量控制和可靠传输那一节的三个协议的最大信道利用率时产生的疑惑 情景: 假如A主机和B主机通过集线器连接,A和集线器是光纤连接,B和集线器也是光纤连接,A给B发…...
RAGFlow报错:ESConnection.sql got exception
环境: Ragflowv0.17.2 问题描述: RAGFlow报错:ESConnection.sql got exception _ming_cheng_tks, 浙江, operatorOR;minimum_should_match30%) 2025-04-25 15:55:06,862 INFO 244867 POST http://localhost:1200/_sql?formatjson […...
报错:函数或变量 ‘calcmie‘ 无法识别。
1、具体报错 运行网上一个开源代码,但是运行报如下错: TT_para_gen 函数或变量 calcmie 无法识别。 出错 TT_para_gen>Mie (第 46 行) [S, C, ang,~] calcmie(rad, ns, nm, lambda, nang, ... 出错 TT_para_gen (第 17 行) [~,ang,Miee,C] …...
蓝桥杯获奖后心得体会
文章目录 获奖项备考心得📖 蓝桥杯 Java 研究生组备考心得📌 一、备考规划📌 二、考试技巧📌 三、心理调整📌 四、总结 获奖项 JAVA研究生组省二 备考心得 好!我来给你写一篇蓝桥杯研究生组Java方向的备…...
大鱼吃小鱼开源
因为知道一些学校也有相关C语言课设 所以这里对代码开源(如果没有csdn会员请用夸克) 我用夸克网盘分享了「大鱼吃小鱼-程序.zip」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速࿰…...
深度学习框架搭建(Vscode/Anaconda/CUDA/Pytroch)
目录 一 Vscode安装 二、Anaconda安装 三、更新显卡驱动 四、安装CUDA 五、安装Pytorch 六、Vscode配置 七、出现的问题汇总 一 Vscode安装 在 Windows 上安装 访问 VS Code 官网 https://code.visualstudio.com/,点击 "Downl…...
免费实用的图像处理工具箱
提到图像处理,一般会想到Photoshop。的确PS比较专业,但是学习成本比较高。其实,针对具体的应用场景,选些简单的工具软件会更方便。 今天就给大家分享一款“洋芋田图像工具箱”软件。它支持Windows和Mac电脑。 用这款软件&#x…...
范式演进:从ETL到ELT及未来展望
范式演进:从ETL到ELT及未来展望 引言 随着数据规模与实时分析需求的爆发,传统的集中式 ETL(Extract-Transform-Load)已难以为继,ELT(Extract-Load-Transform)凭借云原生仓库的弹性计算与分析工程的兴起逐步成为主流。2025 年,数据团队正加速从“先变换再加载”走向“…...
定义一个3D cube,并计算cube每个顶点的像素坐标
定义一个3D cube,并计算cube每个顶点的像素坐标 scratch a pixel课程:Your Starting Point! 3D场景中物体所有点与坐标系原点的连线,该连线与像素平面canvas的交点就是场景中3D点其投影点的位置 3D场景中的点均由这个坐标系描述 相似三角形ABC和A’B’…...
Python学习笔记(第二部分)
接续 Python.md 文件的第二部分 字典 字典的基本操作 字典是一系列 键—值 对,每一个键都与一个值关联,值可以是数字,字符串,甚至是列表或字典,可以把任何python对象都作为字典中的值 alien {color:green,points:5}键…...
ZYNQB笔记(十六):AXI DMA 环路测试
版本:Vivado2020.2(Vitis) 任务:使用 PL 端的 AXI DMA IP 核实现对 DDR3 中数据的读取与写入,实现数据环回,具体流程为: PS 端产生测试数据并写入到 DDR3 中,然后 PL 端的 AXI DMA I…...
Java学习手册:Spring 数据访问
一、Spring JDBC JdbcTemplate :Spring JDBC 提供了 JdbcTemplate 类,它简化了数据库操作,提供了丰富的 API 来执行数据库访问任务。JdbcTemplate 可以自动处理数据库连接的获取、释放,SQL 语句的执行,结果集的处理等…...
第二章 日志分析-apache日志分析(玄机系列)
简介 账号密码 root apacherizhi ssh rootIP 1、提交当天访问次数最多的IP,即黑客IP: 2、黑客使用的浏览器指纹是什么,提交指纹的md5: 3、查看包含index.php页面被访问的次数,提交次数: 4、查看黑客IP访问了…...
类比分析AI Agent 技术
引言:AI Agent 的本质与范式转变 在人工智能领域,AI Agent(智能体)代表了一种从传统软件系统到自主性实体的深刻范式转变。不同于仅仅执行预设指令或算法的程序,现代 AI Agent 被设计为能够: 感知 (Perce…...
【业务领域】PCIE协议理解
PCIE协议理解 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 PCIE学习理解。 文章目录 PCIE协议理解[TOC](文章目录) 前言零、PCIE掌握点?一、PCIE是什么?二、PCIE协议总结物理层切速 链路层事务层6.2 TLP的路…...
设计模式简述(十四)组合模式
组合模式 描述基本使用所有节点方法一致使用 叶子无实现子节点使用 添加向上查询使用(没变化) 描述 组合模式用于描述部分与整体的关系,将个体对象与组合对象的行为统一,便于维护整个数据集。 基本使用 所有节点方法一致 定义…...