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

Maven本地仓库maven-metadata.xml的lastUpdated被设为未来时间原因排查

本地Maven元数据<lastUpdated>被设为未来时间导致更新检测失效

环境信息

  • Windows 10 系统
  • Maven 3.9.1
  • Eclipse EE 2023-03(集成m2e插件)

问题现象

使用Versions Maven Plugin检查POM的插件版本更新时,大量Maven Central上已有的更新无法被检测到,但其他同事检查同一POM时能正常显示这些更新(参考Issue #959)。

排查过程

  1. 执行调试命令获取Maven日志:
mvn -X versions:display-plugin-updates

部分日志输出:

…
[DEBUG] Checking com.akathist.maven.plugins.launch4j:launch4j-maven-plugin for updates newer than 2.1.3
[DEBUG] Could not find metadata com.akathist.maven.plugins.launch4j:launch4j-maven-plugin/maven-metadata.xml in local (C:\Users\user\.m2\repository)
[DEBUG] Skipped remote request for com.akathist.maven.plugins.launch4j:launch4j-maven-plugin/maven-metadata.xml, locally cached metadata up-to-date
[DEBUG] [com.akathist.maven.plugins.launch4j:launch4j-maven-plugin].version=2.1.3
[DEBUG] [com.akathist.maven.plugins.launch4j:launch4j-maven-plugin].artifactVersion=2.1.2
[DEBUG] [com.akathist.maven.plugins.launch4j:launch4j-maven-plugin].effectiveVersion=2.1.3
[DEBUG] [com.akathist.maven.plugins.launch4j:launch4j-maven-plugin].specified=true
…
  1. 对比其他同事的命令输出,他们能正常检测到更新:

com.akathist.maven.plugins.launch4j:launch4j-maven-plugin 2.1.3 -> 2.4.1

  1. 检查本地仓库文件细节:
  • 路径C:\Users\user\.m2\repository\com\akathist\maven\plugins\launch4j\launch4j-maven-plugin\下不存在maven-metadata.xml,仅存在maven-metadata-central.xml
  • 查看maven-metadata-central.xml,其中的<lastUpdated>20210818055556</lastUpdated>经时间戳转换后对应2610年6月16日(未来时间)
  • 补充文件时间与校验信息:
    • maven-metadata-central.xml.sha1的校验值与maven-metadata-central.xml的SHA-1哈希匹配,但前者文件时间戳为2022-09-08,后者为2022-10-02,相差近一个月
    • resolver-status.properties文件时间戳与maven-metadata-central.xml.sha1一致(2022-09-08),文件内注释显示修改时间为2022-09-08,且central.maven-metadata-central.xml.lastUpdated=1662676475074表明当天曾检查过Maven Central
  1. 时间关联:2022-09-08正是我将该POM的v0.8.10版本发布到Maven Central的日期,当时执行过versions:use-releases、versions:set、versions:display-dependency-updates命令,以及使用Nexus Staging Maven Plugin。结合校验值匹配的情况,错误的<lastUpdated>值大概率是在当天被设置的。

提问

有没有人遇到过或了解,是哪个插件、Maven版本、Eclipse m2e版本,或是何种bug/场景,会导致本地Maven仓库中的元数据<lastUpdated>被设置为未来时间?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:10:37