You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven为何仅在SNAPSHOT仓库中查找非快照版本的依赖构件?

问题根本原因

你遇到的这个现象核心是Maven的仓库版本匹配规则导致的:

  • 你配置的snapshots仓库仅显式开启了SNAPSHOT版本的拉取权限,没有显式禁用正式版本(Release)的拉取权限,Maven对于未显式配置releases.enabled的仓库,默认该值为true,也就是说这个SNAPSHOT仓库同时会被Maven当作正式版本的候选查找仓库。
  • Maven查找构件时会严格按照repositories节点中配置的仓库顺序依次遍历查询,你的配置里central仓库在前,snapshots仓库在后:当Maven在central仓库中找不到myGroup:myBom:pom:1.0.0这个正式版本构件时,就会按顺序继续到下一个仓库也就是snapshots仓库中查找,最终查询失败抛出错误。

解决方案

你可以按照以下两个步骤修复问题:

  • 给snapshots仓库显式添加正式版本禁用配置,避免Maven去快照仓库查找正式版本构件,修改后的snapshots仓库配置如下:
<repository>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
    <!-- 新增以下配置 -->
    <releases>
        <enabled>false</enabled>
    </releases>
    <id>snapshots</id>
    <name>public-snapshots</name>
    <url><pathToArtifactory>/public-snapshots</url>
</repository>
  • 确认myGroup:myBom:pom:1.0.0构件确实已经上传到你配置的central仓库对应的/public制品库路径下,如果未上传请先上传该构件,或者调整版本号匹配实际已上传的构件版本。

内容的提问来源于stack exchange,提问作者hublo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:57:03