簡體   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