当前位置: 首页 > 知识库问答 >
问题:

Maven快照版本未从Nexus加载

鲜于德泽
2023-03-14

我们有一个Sonatype Nexus在我们的环境中运行,它配置了另一个Nexus作为代理存储库。当我们消耗我们的依赖时,我们向我们的关系索取它们。直到昨天我在我们的项目中添加了一个新的依赖项。

Maven似乎没有正确解析部署的快照版本。在maven日志中,我可以看到它正在下载maven-metadata.xml,但是当它试图下载包含二进制文件的zip文件时,它没有用当前的快照版本替换-snapshot

> mvn -f My.Product.dependencies.xml process-resources -DConfiguration=AnyConfig -U -X

[DEBUG] Could not find metadata com.company.team:My.New.Dependency:2.2-SNAPSHOT/maven-metadata.xml in local (d:\Maven\repositories)
[DEBUG] Using connector WagonRepositoryConnector with priority 0 for http://buildserver:8082/nexus/content/groups/company
Downloading: http://buildserver:8082/nexus/content/groups/company/com/company/team/My.New.Dependency/2.2-SNAPSHOT/maven-metadata.xml
Downloaded: http://buildserver:8082/nexus/content/groups/company/com/company/team/My.New.Dependency/2.2-SNAPSHOT/maven-metadata.xml (850 B at 13.2 KB/sec)
[DEBUG] Reading resolution tracking file d:\Maven\repositories\com\company\team\My.New.Dependency\2.2-SNAPSHOT\resolver-status.properties
[DEBUG] Writing resolution tracking file d:\Maven\repositories\com\company\team\My.New.Dependency\2.2-SNAPSHOT\resolver-status.properties
[DEBUG] Could not find metadata com.company.team:My.New.Dependency:2.2-SNAPSHOT/maven-metadata.xml in local (d:\Maven\repositories)
[DEBUG] Using connector WagonRepositoryConnector with priority 0 for http://buildserver:8082/nexus/content/groups/company
Downloading: http://buildserver:8082/nexus/content/groups/company/com/company/team/My.New.Dependency/2.2-SNAPSHOT/maven-metadata.xml
Downloaded: http://buildserver:8082/nexus/content/groups/company/com/company/team/My.New.Dependency/2.2-SNAPSHOT/maven-metadata.xml (850 B at 55.3 KB/sec)
[DEBUG] Reading resolution tracking file d:\Maven\repositories\com\company\team\My.New.Dependency\2.2-SNAPSHOT\resolver-status.properties
[DEBUG] Writing resolution tracking file d:\Maven\repositories\com\company\team\My.New.Dependency\2.2-SNAPSHOT\resolver-status.properties
...
Downloading: http://buildserver:8082/nexus/content/groups/company/com/company/team/My.New.Dependency/2.2-SNAPSHOT/My.New.Dependency-2.2-SNAPSHOT-vs2010-40-AnyCpu-Release.zip
[DEBUG] Reading resolution tracking file d:\Maven\repositories\com\company\team\My.New.Dependency\2.2-SNAPSHOT\My.New.Dependency-2.2-SNAPSHOT-vs2010-40-AnyCpu-Release.zip.lastUpdated
[DEBUG] Writing resolution tracking file d:\Maven\repositories\com\company\team\My.New.Dependency\2.2-SNAPSHOT\My.New.Dependency-2.2-SNAPSHOT-vs2010-40-AnyCpu-Release.zip.lastUpdated
[INFO] ------------------------------------------------------------------------
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] My.Client.App  FAILURE [1.922s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.687s
[INFO] Finished at: Thu Oct 13 09:54:24 CEST 2016
[INFO] Final Memory: 9M/177M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project My.Client.App: Could not resolve dependencies for project com.company.team2:My.Client.App:pom:7.0-SNAPSHOT: The following artifacts could not be resolved: com.company.team:My.New.Dependency:zip:vs2010-40-AnyCpu-Release:2.2-SNAPSHOT: Could not find artifact com.company.team:My.New.Dependency:zip:vs2010-40-AnyCpu-Release:2.2-SNAPSHOT in company (http://buildserver:8082/nexus/content/groups/company) -> [Help 1]

maven-metadata.xml正确地包含快照版本信息:

<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
  <groupId>com.company.team</groupId>
  <artifactId>My.New.Dependency</artifactId>
  <version>2.2-SNAPSHOT</version>
  <versioning>
    <snapshot>
      <timestamp>20161011.235855</timestamp>
      <buildNumber>102</buildNumber>
    </snapshot>
    <lastUpdated>20161011235855</lastUpdated>
    <snapshotVersions>
      <snapshotVersion>
        <extension>pom</extension>
        <value>2.2-20161011.235855-102</value>
        <updated>20161011235855</updated>
      </snapshotVersion>
      <snapshotVersion>
        <classifier>vs2010-40-AnyCPU-Release</classifier>
        <extension>zip</extension>
        <value>2.2-20161011.235855-102</value>
        <updated>20161011235855</updated>
      </snapshotVersion>
    </snapshotVersions>
  </versioning>
</metadata>

当我检查下载资料的文件夹的目录列表时,2.2-20161011.235855-102版本就在那里:

来自同一存储库的所有其他依赖项都工作得非常好,只是新引入的依赖项没有下载。Maven没有像对所有其他依赖项那样用实际的快照版本号替换-snapshot,这让我抓狂。我还尝试了Nexus UI中的“过期缓存”和“更新索引”选项,但没有帮助。是什么原因导致Maven从实际版本号回落到-快照?也没有日志条目可以解释这一点。

共有1个答案

崔涵亮
2023-03-14

在尝试了100万件事情并将其他依赖项的配置与新的依赖项进行了比较之后,我终于发现了问题:工件ID(分类器)是区分大小写的。在我的客户端POM文件中,我引用的是vs2010-40-anycpu-release,但部署的是vs2010-40-anycpu-release(注意大写AnyCPU)。

在日志文件中,您可以看到它试图下载一个带有小写anycpu的文件。我把它改成大写后,它起作用了。

 类似资料:
  • 我们使用Maven作为构建管理器,使用Nexus作为我们的工件存储库。我们时不时地会遇到这种依赖问题,Maven无法通过快照版本号的细微差异在Nexus中找到工件。在这种情况下,差别似乎是1秒。 当前,构建失败,maven正在寻找 任何帮助都很感激。谢了!

  • 我试图将构建Jenkins/Maven的结果发布到Nexus存储库。 我使用clean install maven目标进行构建。 我已经为jenkins安装并配置了Nexus Repository Manager Publisher插件,因此它可以在构建后的步骤中发布到我的Nexus Repo。 问题是: 我不明白,没有办法从jenkins builds用这个插件发布快照到nexus??

  • 我的目标是发布一个具有单一依赖项的项目。我有一个nexus存储库,我在其中部署快照和发布版本。 我唯一的依赖性 我的nexus repo中发布了以下候选版本 当要求版本插件解决依赖关系时,它声称没有新的依赖关系可用。所以他认为 但是,如果在我的项目中有版本1.0.0-SNAPSHOT,那么版本1.1.0-RC1将解析为最新版本。 我错过了什么?(我查看了插件源代码,我们有以下片段: 对我来说这辆车

  • 我的计划是建立一个设置,在这个设置中,我可以基于我正在运行的maven目标发布快照和版本。我当前的pom包含以下详细信息- 我的maven settings.xml包含服务器条目- 当我运行命令时 编辑1- 我运行了,部署插件的日志是-

  • 我无法发布我使用maven to Nexus构建的工件的快照版本。我的工件的版本状态为1.0.0-Snapshot。 我可以毫无问题地执行。但是,当我尝试使用进行部署时,会出现以下错误: