【Maven】008-Maven 私服搭建与使用
【Maven】008-Maven 私服搭建与使用
文章目录
- 【Maven】008-Maven 私服搭建与使用
- 一、概述
- 1、简介
- 2、建立私服后依赖查找和下载逻辑
- 第一步:请求本地仓库
- 第二步:请求 Maven 私服
- 第三步:请求外部远程仓库(远程中央仓库等)
- 参考图
- 3、Maven 私服的优势
- 4、Maven 私服常用的产品
- 二、Nexus 下载、安装、初始设置
- 1、下载
- 地址
- 目标
- 2、安装
- 第一步:解压到一个目录
- 第二步:启动
- 第三步:访问 `http://localhost:8081/`
- 3、初始设置
- 登录
- 根据提示设置新密码
- 禁用匿名登录
- 初始化完成后
- 三、Nexus 上的仓库
- 1、仓库
- 2、仓库类型&说明
- 3、仓库名称&说明
- 4、初始状态仓库内为空
- 四、通过 Nexus 下载 jar 包
- 1、将中央仓库地址设置为阿里云镜像地址
- 第一步:选择要修改的仓库
- 第二步:修改地址为阿里云镜像地址
- 第三步:保存配置
- 2、将本机 Maven 配置的阿里云镜像地址改成自己的私服地址
- 第一步:拷贝自己的私服仓库地址
- 第二步:修改本机 Maven 配置的阿里云镜像地址
- 第三步:添加访问用户名密码
- 3、通过 Nexus 下载 jar 包
- 第一步:修改本机 Maven 仓库地址
- 第二步:在 Maven 工程下执行 Maven 命令
- 第三步:查看私服仓库
- 五、将 jar 包部署到 Nexus
- 1、Maven 工程中配置
- 2、执行部署命令
- 执行日志
- 私服
- 六、引用别人部署的 jar 包
- 1、Maven 工程中配置
- 2、打包日志
一、概述
1、简介
Maven私服(Repository Manager)是一个用于管理和分发构建制品(如JAR、WAR、POM文件等)的服务器。它允许团队在本地搭建一个中央存储库,用于保存和分享项目构建所需的依赖项。一些常见的Maven私服产品包括 Nexus、Artifactory 和 Apache Archiva 。
2、建立私服后依赖查找和下载逻辑
第一步:请求本地仓库
- 当用户需要某个构件时,首先会检查本地仓库是否已经存在所需构件。
- 如果本地仓库中已经有所需构件,系统将直接从本地仓库获取,无需进行远程请求。
第二步:请求 Maven 私服
- 如果本地仓库中不存在所需构件,用户的请求将转向 Maven 私服。
- Maven 私服会检查自身的仓库,如果存在所需构件,将其下载到本地仓库,并返回给用户。
第三步:请求外部远程仓库(远程中央仓库等)
- 如果 Maven 私服也没有所需构件,系统将尝试从外部的远程仓库(通常是中央仓库)中获取。
- 如果外部远程仓库存在所需构件,Maven 私服会将该构件下载并缓存到自身的仓库中,然后将构件返回给用户。
- 如果外部远程仓库中也不存在所需构件,Maven 将报错,指示找不到所需的依赖项。
参考图

3、Maven 私服的优势
- 加速构建过程: Maven 私服允许团队在本地搭建一个中央存储库,使得构建时可以优先从局域网内的私服获取依赖项,从而减少对外部远程仓库的依赖,加速构建过程。
- 降低对外部网络的依赖性: 私服允许团队在没有互联网连接或网络较差的情况下进行构建。依赖项的本地缓存和私服的存在减少了对外部网络的依赖性,提高了项目的可靠性。
- 统一依赖管理: 通过私服,团队可以统一管理和控制项目所需的依赖项版本,确保整个团队使用相同的构建制品,降低了版本冲突和不一致性的可能性。
- 安全性: 私服可以提供访问控制和安全认证机制,限制对仓库的访问,确保只有授权的人员能够发布和获取构建制品。这有助于保护项目的代码和依赖项的安全性。
- 本地镜像和缓存: 私服可以缓存外部远程仓库中的构建制品,降低了从外部仓库获取依赖项的延迟。此外,私服还可以配置为本地镜像,提供更快速的下载。
- 离线部署: Maven 私服支持离线部署,使得在没有互联网连接的环境中也能够构建和部署项目,适用于一些安全要求较高或隔离网络的场景。
4、Maven 私服常用的产品
- Nexus(当前最流行、使用最广泛):
- Nexus 是 Sonatype 公司推出的一款流行的 Maven 私服产品。
- 提供强大的仓库管理和安全性功能。
- 支持多种仓库格式,包括Maven、npm、Docker等。
- Artifactory:
- Artifactory是JFrog公司开发的另一款领先的构建制品仓库管理工具。
- 支持各种包括 Maven、Gradle、npm 等的构建工具。
- 具有高度可伸缩性和灵活的部署选项。
- Apache Archiva:
- Apache Archiva 是由 Apache 软件基金会提供的开源 Maven 私服工具。
- 提供基本的仓库管理功能,适用于小型项目或对简单配置有需求的团队。
二、Nexus 下载、安装、初始设置
1、下载
地址
https://help.sonatype.com/repomanager3/product-information/download
目标

2、安装
第一步:解压到一个目录

第二步:启动
使用管理员身份打开 CMD ,切换到 bin 目录。
命令:
- 安装:nexus.exe /install bm-maven
- 启动:nexus.exe /start bm-maven
- 停止:nexus.exe /stop bm-maven
- 卸载:nexus.exe /uninstall bm-maven

第三步:访问 http://localhost:8081/

3、初始设置
登录
用户名:admin
密码:(在 Nexus\sonatype-work\nexus3\admin.password )

根据提示设置新密码

禁用匿名登录

初始化完成后

三、Nexus 上的仓库
1、仓库

2、仓库类型&说明
| 仓库类型 | 说明 |
|---|---|
| proxy | 某个远程仓库的代理 |
| group | 存放:通过 Nexus 获取的第三方 jar 包 |
| hosted | 存放:本团队其他开发人员部署到 Nexus 的 jar 包 |
3、仓库名称&说明
| 仓库名称 | 说明 |
|---|---|
| maven-central | Nexus 对 Maven 中央仓库的代理 |
| maven-public | Nexus 默认创建,供开发人员下载使用的组仓库 |
| maven-releases | Nexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 releases 版本 |
| maven-snapshots | Nexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 snapshots 版本 |
4、初始状态仓库内为空

四、通过 Nexus 下载 jar 包
1、将中央仓库地址设置为阿里云镜像地址
为了加快国内下载速度!
第一步:选择要修改的仓库

第二步:修改地址为阿里云镜像地址
http://maven.aliyun.com/nexus/content/groups/public/

第三步:保存配置

2、将本机 Maven 配置的阿里云镜像地址改成自己的私服地址
第一步:拷贝自己的私服仓库地址

第二步:修改本机 Maven 配置的阿里云镜像地址

第三步:添加访问用户名密码
我们设置了禁止匿名访问!
这里需要格外注意:server 标签内的 id 标签值必须和 mirror 标签中的 id 值一样。
3、通过 Nexus 下载 jar 包
第一步:修改本机 Maven 仓库地址
因为原本的仓库里面可能已经有很多内容了,为了直观,新建一个本地空仓库(一个空文件夹),让 Maven 直接向私服获取依赖!

第二步:在 Maven 工程下执行 Maven 命令
mvn clean compile
部分下载过程日志:
......
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.jar (217 kB at 42 kB/s)
Downloading from zibo-nexus-maven: http://localhost:8081/repository/maven-central/junit/junit/3.8.2/junit-3.8.2.jar
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/log4j/log4j/1.2.12/log4j-1.2.12.jar (358 kB at 63 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar (45 kB at 7.9 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar (134 kB at 23 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/junit/junit/3.8.2/junit-3.8.2.jar (121 kB at 21 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/com/google/collections/google-collections/1.0/google-collections-1.0.jar (640 kB at 89 kB/s)
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\MyFile\IDEAProjects\mvn-demo\demo1\target\classes
[INFO]
[INFO] ---------------------------< com.zibo:demo2 >---------------------------
[INFO] Building demo2 1.0-SNAPSHOT [3/3]
[INFO] from demo2\pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ demo2 ---
[INFO] Deleting D:\MyFile\IDEAProjects\mvn-demo\demo2\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ demo2 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ demo2 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\MyFile\IDEAProjects\mvn-demo\demo2\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for mvn-demo 1.0-SNAPSHOT:
[INFO]
[INFO] mvn-demo ........................................... SUCCESS [ 8.613 s]
[INFO] demo1 .............................................. SUCCESS [01:22 min]
[INFO] demo2 .............................................. SUCCESS [ 0.079 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:31 min
[INFO] Finished at: 2024-01-14T13:26:44+08:00
[INFO] ------------------------------------------------------------------------
第三步:查看私服仓库

五、将 jar 包部署到 Nexus
如出现问题,请调整下面配置。
1、Maven 工程中配置
注意:这里 repository 和 snapshotRepository 的 id 标签必须和 settings.xml 中指定的 mirror 标签的 id 属性一致。
<distributionManagement><!-- 部署正式版本(Release):mvn clean deploy --><repository><id>zibo-nexus-maven</id><name>zibo nexus maven releases</name><url>http://localhost:8081/repository/maven-releases/</url></repository><!-- 部署快照版本(Snapshot):mvn clean deploy -DrepositoryId=zibo-nexus-maven --><snapshotRepository><id>zibo-nexus-maven</id><name>zibo nexus maven</name><url>http://localhost:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>
2、执行部署命令
mvn deploy
执行日志

私服

六、引用别人部署的 jar 包
1、Maven 工程中配置
<dependencies><dependency><groupId>com.zibo</groupId><artifactId>demo1</artifactId><version>1.0.0</version></dependency>
</dependencies><repositories><repository><id>zibo-nexus-maven</id><name>zibo nexus maven</name><url>http://localhost:8081/repository/maven-releases/</url><releases><enabled>true</enabled></releases></repository>
</repositories>
2、打包日志

相关文章:
【Maven】008-Maven 私服搭建与使用
【Maven】008-Maven 私服搭建与使用 文章目录 【Maven】008-Maven 私服搭建与使用一、概述1、简介2、建立私服后依赖查找和下载逻辑第一步:请求本地仓库第二步:请求 Maven 私服第三步:请求外部远程仓库(远程中央仓库等)…...
TMDB电影数据分析(下)
TMDB电影数据分析(下) 本文对源自Kaggle TMDB电影数据集进行分析影响电影票房的因素,数据分析流程包含数据集概分析、数据清洗、数据统计以及分析影响电影票房的因素。影响票房因素可能是电影预算、电影类型、电影时长、受欢迎程度、电影评分…...
django后台手机号加密存储
需求: 1 :员工在填写用户的手机号时,直接填写,在django后台中输入 2:当员工在后台确认要存储到数据库时,后台将会把手机号进行加密存储,当数据库被黑之后,手机号字段为加密字符 3&am…...
三、Qt Creator 使用
关于Qt的安装及环境配置,在我的上一篇《二、QT下载、安装及问题解决(windows系统)》已经讲过了。 本章节有一个重点,在新建 工程文件时,所在路径不要有中文,否则编译及运行程序不能正常运行。 在使用Qt Creator(以下…...
css 边框渐变
需求: 普通的div 边框不好看,做一个渐变色 进程: 最简单的当然是做一个内部是白色的边框是渐变色的图,然后使用 background: url("back.jpg"),这样看起来就像是做了一个渐变的边框如果做不了图࿰…...
SofaMQ一些常用的API
SofaMQ的十五种常用的API 引言 SofaMQ作为阿里巴巴开源的消息中间件,提供了丰富的API以支持各种消息传递场景。在本文中,我们将介绍SofaMQ的十五种常用API,并通过实例演示其用法。 1. Producer相关API 1.1 SofaMQProducer SofaMQProduce…...
IIS 缓存, 更新后前端资源不能更新问题
解决办法: 通常只需要index.html 不缓存即可, 其他文件都是根据index.html 中的引用去加载; 正确的做法是在 站点下增加 web.config 文件, 内容如下: 我这个是因为目录下有个config.js 配置文件, 也不能缓存, 所以加了两个 <?xml version"1.0" encoding&quo…...
中科院罗小舟团队提出 UniKP 框架,大模型 + 机器学习高精度预测酶动力学参数
作者:李宝珠 编辑:三羊 中国科学院深圳先进技术研究院罗小舟团队提出了,基于酶动力学参数预测框架 (UniKP),实现多种不同的酶动力学参数的预测。 众所周知,生物体内的新陈代谢是通过各种各样的化学反应来实现的。这…...
组件中写选项的顺序(vue的问题)
为什么选项要有统一的书写顺序呢?很简单,就是要将选择和认知成本最小化。 副作用 (触发组件外的影响) el全局感知 (要求组件以外的知识) nameparent组件类型 (更改组件的类型) functional模板修改器 (改变模板的编译方式) delimiterscomments模板依赖 (…...
LUA 对象转excel
1. 首先把LUA 转成JSON 对象 因为是excel, 所以第一层要是数组,否则没有什么意义,即lua对象要是一个数组比较合理。这里使用开源的json.lua, 但是开源的,对于数字作下标的,或者是一个数组里,不同类型的key…...
深入理解 Flink(八)Flink Task 部署初始化和启动详解
JobMaster 部署 Task 核心入口: JobMaster.onStart();部署 Task 链条:JobMaster --> DefaultScheduler --> SchedulingStrategy --> ExecutionVertex --> Execution --> RPC请求 --> TaskExecutor TaskExecutor 处理 JobMaster 的 …...
openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c
文章目录 openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c概述笔记END openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_paramfromdata.c 概述 开源工程包含的头文件类型是.inc, 要重命名为.h, 否则没有c头文件语法提示 从数组中载入大数p,q,g 建立ossl…...
【k8s】Kubernetes技术和相关命令简介
一、 Kubernetes简介 Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。kubernetes,简称K8s࿰…...
清晰光谱空间:全自动可调波长系统的高光谱成像优势
高光谱成像技术 高光谱成像技术是一种捕获和分析宽波长信息的技术,能够对材料和特征进行详细的光谱分析和识别。高光谱成像技术的实现通过高光谱相机,其工作原理是使用多个光学传感器或光学滤波器分离不同波长的光,并捕获每个波段的图像&…...
23.实战演练--个人主页
<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><applicationandroid:allowBackup"true"an…...
[剪藏] - 任泽平年终演讲精华:点燃希望——2024中国经济十大预测
任泽平年终演讲精华:点燃希望——2024中国经济十大预测 泽平宏观 2023-12-23 08:01 发表于上海 12月22日22:30,任泽平年终秀“点燃希望乐观者前行——2024中国经济十大预测”圆满收官。 泽平宏观、北京广播电视台、上海高净值研究院、北京时间等携手打…...
基于LabVIEW的压力传感器测试系统
摘要 现在各类压力传感器已广泛应用于各种工业自控环境,对压力传感器的研究 及应用,既可以体现一个国家的科技发展水平,又可以提升国家的综合国力,还 可以在丰富、方便和智能化人们的生活方面做出重要的贡献。而针对不同仪器组 成…...
Vue 如何使用WebSocket与服务器建立链接 持续保持通信
WebSocket 浏览器通过JavaScript向服务器发出建立WebSocket链接的请求,链接建立后,客户端和服务器端就可以通过TCP链接直接交互数据。WebSocket链接后可以通过send()方法来向服务器发送数据,并通过onnessage事件来接受服务器返回的数据。 创…...
自动驾驶模拟器
目录 Carla 自动驾驶模拟器 Udacity自动驾驶模拟器 Carla 自动驾驶模拟器 pip install carla 需要下载地图 Udacity自动驾驶模拟器...
Jmeter的文件参数化:CSV数据文件设置和_CSVRead函数
一、CSV数据文件设置 1、简介 CSV数据文件配置(CSV Data Set Config)可以将CSV文件中数据读入自定义变量中 Jmeter中CSV数据文件配置的界面如下图所示: 其中: (1)文件编码 文件的编码格式,与所…...
2026年长沙美缝施工团队哪家强?专业之选等你来揭秘!
在长沙高端住宅、别墅装修领域,美缝施工是提升家居质感的关键环节。面对众多美缝施工团队,业主们常常不知如何选择。今天,我们就来揭秘2026年长沙值得信赖的美缝施工团队——长沙匠心徐师傅美缝团队,看看它有哪些独特的优势。一、…...
人工智能在科学领域需要设立防护措施,避免对它不加批判地采用
耶鲁大学人类学研究生院主任Lisa Messeri、和普林斯顿大学的心理学家M. J. Crockett 发给《自然》期刊的论文中阐述:人工智能正在迅速加速科学产出,但也有可能缩小研究范围,削弱判断力,削弱科学家的培训方式。科学界正以惊人的速度…...
UPGEN Lighting HDRP:HDRP光照优化与自动化配置方案
1. 这不是又一个“开箱即用”的灯光插件,而是HDRP光照工程的系统性减负方案我第一次在项目里把UPGEN Lighting HDRP拖进Assets文件夹时,并没指望它能解决什么大问题——毕竟Unity官方HDRP模板里自带的Light Explorer、Light Probe Group、Reflection Pro…...
pytest Code Review skill.md
Skills 架构设计 本文深入探讨 Agent Skills 的技术架构和设计理念,帮助你理解 Skills 如何高效地扩展 Claude 的能力。 核心设计理念 Agent Skills 采用**渐进式披露(Progressive Disclosure)**架构,这是一种现代软件工程中的…...
在Taotoken模型广场中根据任务需求挑选最合适的大模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Taotoken模型广场中根据任务需求挑选最合适的大模型 1. 模型广场:统一查看与筛选的起点 当我们需要为特定的开发任务…...
如何在5分钟内掌握DistroAV网络视频传输:新手完整指南
如何在5分钟内掌握DistroAV网络视频传输:新手完整指南 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi 还在为复杂的直播布线烦恼吗?想要在不同设备…...
抖音批量下载解决方案:模块化架构与智能降级策略
抖音批量下载解决方案:模块化架构与智能降级策略 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...
LDDC终极指南:如何快速获取精准的逐字歌词
LDDC终极指南:如何快速获取精准的逐字歌词 【免费下载链接】LDDC 简单易用的精准歌词(逐字歌词/卡拉OK歌词)下载匹配工具|A simple and user-friendly tool for downloading and matching precise lyrics (word-by-word lyrics/Karaoke lyrics) 项目地址: https:/…...
PHP Intelephense项目结构解析:多工作区、虚拟工作区与远程开发
PHP Intelephense项目结构解析:多工作区、虚拟工作区与远程开发 【免费下载链接】vscode-intelephense PHP intellisense for Visual Studio Code 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-intelephense PHP Intelephense是一款为Visual Studio …...
EASY-HWID-SPOOFER:Windows硬件指纹保护终极方案
EASY-HWID-SPOOFER:Windows硬件指纹保护终极方案 【免费下载链接】EASY-HWID-SPOOFER 基于内核模式的硬件信息欺骗工具 项目地址: https://gitcode.com/gh_mirrors/ea/EASY-HWID-SPOOFER 在数字时代,您的电脑硬件信息正在被悄无声息地追踪。无论是…...
