繁体   English   中英

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

[英]The timestamp in snapshot jar's maven-metadata.xml is more than a second than the actual jar's timestamp?

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

我使用“ 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

构建成功,一切正常。

但是当我构建另一个依赖于userdao.jar maven 项目时,出现如下错误:

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

定位后发现nexus中maven-metadata.xml中的时间戳比实际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 ,所以它的错误。

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

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

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

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

这已被确认为 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 元数据文件

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

我将maven从3.3.9更新到3.5.0,发现maven-metadata.xml上传一次,问题解决! 所以我猜这是 maven 3.3.9 中的一个错误,我目前的解决方案是将 maven 更新到 3.5.0。

我在使用 Maven 3.3.9 时遇到了同样的问题。 通过升级到 Maven 3.5.4 进行测试,但问题仍然存在。 maven-metadata.xml 上传两次的问题是由于spotbug maven plugin v3.1.3。 它在我测试过的最新的 spotbug maven 插件版本 3.1.12 中得到了解决。

我在使用 maven 3.3.9 时遇到了同样的问题。 就我而言,升级到 maven 3.5.4 解决了这个问题,在默认部署阶段不再有“两次所有事情”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM