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

</mirrorOf> Maven

在 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.kler.cn/a/599777.html

相关文章:

  • 算法刷题--动态规划
  • centos 7 搭建FTP本地用户
  • 拓展知识三:编码学及密码学
  • Vue3 实现pdf预览
  • 如何确保异步任务在 HTTP 返回后继续执行?context.WithoutCancel
  • Rust语言的图形用户界面
  • 您是否需要管理型PoE交换机?
  • 2025年渗透测试面试题总结-某深信服-深蓝攻防实验室(题目+回答)
  • C++对C的拓展-3.22笔记
  • JAVA学习*Object类
  • python3面试题23个(设计模式、面向对象、正则)
  • Typora安装使用教程 简单易用的Markdown编辑器
  • 解决思科交换机无法访问局域网外设备
  • C++学习之路,从0到精通的征途:string类
  • 深入理解Spring框架:核心概念与组成剖析
  • C++题目
  • uv - reference [官方文档翻译]
  • 【嵌入式学习2】内存管理
  • GitLens with `Commit Graph`
  • 使用Python调用Jenkins Api之获取构建日志使用说明文档