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

Maven 下载 Spigot 依赖失败问题排查:Could not find artifact org.spigotmc:spigot-api…


🔧 Maven 下载 Spigot 依赖失败问题排查:Could not find artifact org.spigotmc:spigot-api…

在使用 Maven 开发 Minecraft 插件时,我遇到了一个依赖无法下载的问题。
项目中引入了 Spigot API:

<dependency><groupId>org.spigotmc</groupId><artifactId>spigot-api</artifactId><version>1.21.3-R0.1-SNAPSHOT</version><scope>provided</scope>
</dependency>

并配置了官方仓库:

<repositories><repository><id>spigotmc-repo</id><url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url></repository><repository><id>sonatype</id><url>https://oss.sonatype.org/content/groups/public/</url></repository>
</repositories>

但 Maven 构建时仍然失败,报错如下:

Could not find artifact org.spigotmc:spigot-api:jar:1.21.3-R0.1-SNAPSHOT in aliyunmaven (https://maven.aliyun.com/repository/public)

❗ 问题原因分析

这里依赖版本和仓库地址都没有问题,真正的问题是:

🔥 阿里云 Maven 镜像劫持了所有仓库请求

很多国内用户使用的 Maven settings.xml 文件里包含这一段:

<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>Aliyun Maven</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

mirrorOf="*" 的意思是:

所有 Maven 仓库都必须经过我。

结果:

想访问的仓库 实际被代理去哪了
Spigot Snapshot 仓库 ❌ 被拦截并转发到阿里云公有仓库
阿里云有没有 Spigot 依赖? ❌ 没有 → 所以报错

也就是说,不是 Spigot 仓库没配置,而是 根本没访问到 Spigot 仓库


✔ 解决办法

✅ 方法 1:修改 settings.xml,避免阿里云接管所有仓库(推荐)

找到:

Maven 安装目录 /conf/settings.xml

将镜像部分改成:

<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf> <!-- 改成只代理中央仓库 --><name>Aliyun Maven</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

这样:

仓库类型 下载路径
中央仓库依赖 阿里云(速度快)
Spigot 等第三方仓库 原仓库(不会被拦截)

执行编译:

mvn clean package -U

就能正常拉到 Spigot 依赖。


✅ 方法 2:使用纯净的官方 Maven(无需修改 settings.xml)

到 Maven 官网下载不带镜像配置的版本即可:

🔗 https://maven.apache.org/

解压后配置环境变量,用它构建项目即可。


✅ 方法 3:新建独立 Maven 仓库(临时解决)

不用改配置,直接执行:

mvn -Dmaven.repo.local=D:\maven-repo clean package

让 Maven 使用一个全新的仓库目录,避免旧缓存和镜像干扰。


📌 总结

| 项目配置问题? | ❌ |
| 仓库地址错误? | ❌ |
| 版本号错误? | ❌ |
| 真实原因 | ✔ 阿里云镜像拦截并代理了 Spigot 仓库请求 |

只要调整 Maven 镜像配置,让 Spigot 请求不再被拦截,依赖就能正常下载。


💡 这并不是开发者的问题,而是国内镜像的行为造成的。
以后遇到依赖明明配置了仓库却依旧下载不到的情况,优先检查 settings.xml 的镜像规则是否在劫持请求。


http://www.jsqmd.com/news/67596/

相关文章:

  • 12.8每日总结
  • 2025/12/08 分享
  • frp
  • 深刻理解HTTP和RPC的区别
  • linux 中 socket 文件是什么?和 socket 编程有什么关系?和 TCP/IP 协议栈又有什么关系?
  • 智能座舱的下一站:从“车内大屏”到“全域协同” - 智慧园区
  • 硬件电子知识(基础篇)
  • stable diffusion
  • 每日的小开心
  • 揭秘业务逻辑滥用:API安全中“利用游戏规则”的攻击手法
  • 放弃原容器建立新容器,保存留数据卷且映射
  • CommonUI-学习记录
  • 银行反欺诈day1
  • Hikvision 考勤机数据提取(3)
  • 2025年数控折弯机模具选购参考
  • Hikvision 考勤机数据提取(3)
  • 12306爬取基本车次信息(需下载chromedriver)
  • 微信小程序渗透测试
  • 大数据数仓设计:分层架构与维度建模 - Binge
  • 2025年折弯机上下模实力厂家推荐榜
  • Day14-20251208
  • 遇到的前端ts语法问题记录 - wuzx
  • Flask集成MCP的AI Agent
  • 阅读笔记四
  • 从纯数学到应用AI科学的职业转变
  • 深入解析:OpenAI 新推 GPT-5-Codex-Mini:一款针对开发者的轻量级编码助手
  • rustfs
  • threadDay01
  • 20232404 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • Python数据可视化全攻略:Matplotlib/Seaborn从入门到实战