</mirrorOf> Maven

devtools/2025/3/31 11:22:23/

在 Maven 的镜像配置中,* 和 central 的核心区别在于 镜像的作用范围。以下是详细对比:

  1. central
    作用范围
    仅替代 Maven 中央仓库(即默认的 central 仓库,对应 https://repo.maven.apache.org/maven2/)。

典型场景
你希望从某个镜像(如阿里云、腾讯云)加速中央仓库的下载,但其他仓库(如私有仓库、JCenter 等)仍保持原样。

示例

xml
Copy

aliyun-central
https://maven.aliyun.com/repository/public
central

Run HTML
所有对 central 的请求会被重定向到阿里云,但其他仓库(如 my-company-repo)不受影响。

  1. *
    作用范围
    替代 所有仓库(包括 central、自定义仓库、第三方仓库等)。

典型场景
你希望所有仓库请求都通过一个统一的镜像(如企业内部私服 Nexus/Artifactory)代理。

示例

xml
Copy

internal-nexus
http://nexus.mycompany.com/repository/maven-public/
*

Run HTML
无论 Maven 尝试从哪个仓库下载依赖,都会被重定向到 internal-nexus。

关键区别
配置 作用范围 风险提示
central 仅中央仓库 安全,仅影响中央仓库的下载。
所有仓库 高风险!可能覆盖其他仓库(如私有仓库、第三方仓库),导致依赖下载失败。
为什么慎用 ?
覆盖所有仓库
如果镜像仓库(如阿里云)没有某个依赖(如企业内部私有库),Maven 会尝试从镜像仓库下载,最终失败。

配置冲突
如果存在多个镜像配置,* 的镜像会优先匹配所有仓库请求,可能导致其他镜像失效。

正确使用 * 的场景
仅当满足以下条件时使用:

镜像仓库是 全量代理(如企业内部私服 Nexus/Artifactory,已聚合所有仓库)。

确保镜像仓库包含所有需要的依赖(包括私有库、第三方库)。

高级用法:通配符排除
可以通过 ! 排除特定仓库,避免镜像覆盖:

xml
Copy

internal-nexus
http://nexus.mycompany.com/repository/maven-public/
*,!my-private-repo

Run HTML
表示镜像所有仓库,但排除 ID 为 my-private-repo 的仓库。

验证镜像匹配
通过 Maven 调试日志查看实际生效的仓库:

bash
Copy
mvn dependency:resolve -X
在日志中搜索 Downloading from,确认依赖是否从预期的镜像下载。

总结
场景 推荐配置
仅加速中央仓库 central
统一代理所有仓库(全量镜像)
排除特定仓库 ,!repo-id
尽量明确指定镜像范围,避免使用 * 导致意外问题!


http://www.ppmy.cn/devtools/171093.html

相关文章

Android switch 语句编译问题:需要常量表达式

问题与处理策略 问题描述 Override public void onClick(View v) {switch (v.getId()) {case R.id.btn_dbAdd:......break;case R.id.btn_dbSave:......break;case R.id.btn_dbDelete:......break;default:break;} }在 Android 项目中,上述代码导致编译报如下错误…

8路CXP相机采集系统介绍

8xCXP相机采集系统介绍 目录 1 系统概述 4 2 硬件架构 5 2.1 FPGA处理单元 5 2.2 CXP接口层 6 2.3 CXP相机说明与使用要求 7 2.4 SSI控制器板 8 3 FPGA方案 9 3.1 FPGA实现 9 3.2 Block Design说明 10 4 软件方案 14 4.1 嵌入式层 14 4.2 上位机软件(C…

Jupyter Notebook中解决matplotlib绘图中文乱码的实用方案

在使用 Jupyter Notebook 进行数据可视化时,调用 matplotlib.pyplot 绘图模块时出现中文乱码问题。无论是图例、标题、坐标轴标签中只要含有中文字符,就会显示为一串乱码或方框,影响图表的可读性。 该问题的出现主要是由于系统默认字体中不包…

仅靠prompt,Agent难以自救

Alexander的观点很明确:未来 AI 智能体的发展方向还得是模型本身,而不是工作流(Work Flow)。还拿目前很火的 Manus 作为案例:他认为像 Manus 这样基于「预先编排好的提示词与工具路径」构成的工作流智能体,…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例14,TableView15_14多功能组合的导出表格示例

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例14,TableView15_14多功…

爬虫(requsets)笔记

一、request_基本使用 pip install requests -i https://pypi.douban.com/simple 一个类型六个属性 r.text 获取网站源码 r.encoding 访问或定制编码方式r.url 获取请求的urlr.content 响应的字节类型r.status_code 响应的状态码r.headers 响应的头信息 import requestsur…

【多线程】synchronized底层实现的方式

前言 在java 开发中对于锁的应用非常的常见,如果对于什么时候该用什么锁,以及锁实现的原理有所不知道的,或者面试过程中面试官问你不知道怎么回答的,欢迎来看下面的文章 1、synchronized和ReentrantLock的区别 2、synchronized的…

【数据结构】C语言实现树和森林的遍历

C语言实现树和森林的遍历 导读一、树的遍历二、森林的遍历2.1 为什么森林没有后序遍历?2.2 森林中存不存在层序遍历?三、C语言实现3.1 准备工作3.2 数据结构的选择3.3 树与森林的创建3.4 树与森林的遍历3.4.1 先根遍历3.4.2 后根遍历3.4.3 森林的遍历3.5 树与森林的销毁3.6 算…