快照jar的maven-metadata.xml中的时间戳比实际jar的时间戳多一秒?

Icy*_*mon 11 nexus maven jenkins maven-metadata

我遇到了一个奇怪的问题:

我使用" mvn deploy"(Maven 3.3.9,Jenkins 2.45,Nexus 2.12.0)在jenkins中将快照jar部署到我的nexus,结果如下(假设jar名称是userdao.jar):

Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/userdao-1.0-20170512.111840-6.jar 
Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/maven-metadata.xml
Run Code Online (Sandbox Code Playgroud)

构建成功,一切都很好.

但是当我构建另一个依赖于上面的maven项目时,userdao.jar发生了如下错误:

Could not find artifact userdao:jar:1.0-20170512.111840-6 in public (http://myNexusIp/nexus/content/groups/public/)
Run Code Online (Sandbox Code Playgroud)

定位后我发现maven-metadata.xmlnexus中的时间戳比实际jar的时间戳大一秒多!
如下:

  • maven-metadata.xml:1.0-20170512.111840-6
  • 实际存在的快照jar:userdao-1.0-20170512.111839-6.jar

因为userdao-1.0-20170512.111840-6.jar在Nexus中不存在userdao-1.0-20170512.111839-6.jar,所以应该是正确的,所以它是错误的.

谁能告诉我为什么以及如何解决它?

小智 7

我实际上发现了相反的结果 从Maven 3.3.9升级到3.5.0后,我可以可靠地部署工件,其中Nexus上的metadata.xml文件中出现的时间戳与部署的实际文件相比是不正确的.

通过降级(返回到3.3.9),一切正常.始终匹配metadata.xml版本和时间戳.

也许这与Maven 3.5.0升级以移除Aether有关?


Wuc*_*enW 6

这已被确认为maven-3.5问题https://issues.apache.org/jira/browse/MNG-6240并已修复已应用.maven-3.5.1与修复程序的发布在这里投票https://www.mail-archive.com/dev@maven.apache.org/msg114783.html

  • Maven 3.5.2现在[发布](https://issues.apache.org/jira/projects/MNG/versions/12338964),此问题应该已解决! (2认同)

Von*_*onC 1

首先要尝试的是在上传快照工件的存储库上重建元数据。

请参阅“管理计划任务

重建 Maven 元数据文件

此任务将使用正确的信息重建maven-metadata.xml文件,并将验证指定存储库/组中所有文件的校验和 ( .md5/ )。 通常,此任务是手动运行的以修复损坏的存储库。.sha1