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

使用mvn dependency:get从Nexus拉取最新构件失败求助

解决Maven dependency:get指定快照仓库却访问Release仓库的问题

我来帮你分析这个问题并给出纯Maven命令的解决方案:

问题原因

你遇到的核心问题在于Maven解析LATEST版本时的逻辑:即使你用-Durl指定了快照仓库,Maven在解析LATEST版本号时,仍然会默认遍历你settings.xml中配置的所有仓库(包括Release仓库)去查找元数据文件maven-metadata.xml。而你的构件快照元数据只存在于快照仓库中,Release仓库里没有对应内容,所以会抛出找不到元数据的错误。

而使用具体快照版本(比如1.0.0-SNAPSHOT)时,Maven不需要解析版本,直接根据你指定的-Durl去下载构件,所以不会有问题。

解决方案

要让Maven仅从指定的快照仓库解析LATEST版本并下载,你需要调整命令参数,明确指定依赖解析仅使用该快照仓库,具体有两种方式:

方式1:使用-DremoteRepositories指定仓库(推荐)

这个参数可以强制Maven在解析版本和下载构件时都只使用你指定的快照仓库,格式为仓库ID::仓库布局::仓库URL:

mvn dependency:get \
  -DremoteRepositories=snapshots::default::http://nexus-repository:8080/nexus/content/repositories/snapshots \
  -Dartifact=com.my.company:common:LATEST:jar \
  -Dtransitive=false \
  -Ddest=. \
  -s settings.xml

注意:这里的snapshots是你给仓库起的自定义ID,default表示Maven默认的仓库布局,无需修改。

方式2:配合settings.xml优化参数

如果你已经在settings.xml中配置了快照仓库(带有正确的ID),可以直接指定仓库ID,同时确保仓库配置中开启了快照支持:

<!-- settings.xml中的快照仓库配置示例 -->
<repositories>
  <repository>
    <id>nexus-snapshots</id>
    <url>http://nexus-repository:8080/nexus/content/repositories/snapshots</url>
    <snapshots>
      <enabled>true</enabled>
      <updatePolicy>always</updatePolicy> <!-- 确保每次都拉取最新元数据 -->
    </snapshots>
  </repository>
</repositories>

然后执行命令时指定仓库ID:

mvn dependency:get \
  -DrepositoryId=nexus-snapshots \
  -Dartifact=com.my.company:common:LATEST:jar \
  -Dtransitive=false \
  -Ddest=. \
  -s settings.xml

额外注意事项

  • 检查命令语法:你原来的命令中-Dartifact参数里的LATEST和-Dtransitive连在了一起(LATEST-Dtransitive=false),这是语法错误,正确格式应该是com.my.company:common:LATEST:jar,然后单独用-Dtransitive=false作为独立参数。
  • 如果快照仓库的元数据更新不及时,你可以加上-U参数强制Maven更新快照元数据:
mvn dependency:get -U \
  -DremoteRepositories=snapshots::default::http://nexus-repository:8080/nexus/content/repositories/snapshots \
  -Dartifact=com.my.company:common:LATEST:jar \
  -Dtransitive=false \
  -Ddest=. \
  -s settings.xml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:01:57