如何查询Maven依赖包的发布日期?
怎么查Maven依赖包的发布时间?
先明确:你看到的lastUpdated字段不是依赖包的发布时间——它只是maven-metadata.xml这份元数据文件在中央仓库最后被修改的时间,比如仓库新增了该依赖的新版本、更新了版本信息时,这个时间就会变更,和依赖本身的发布时间没关系。
下面给你几个靠谱的获取思路:
1. 直接看对应版本的POM文件
每个版本的依赖都有专属的POM文件,路径是https://repo1.maven.org/maven2/$groupURL/$artifactID/$version/$artifactID-$version.pom。打开后:
- 有些项目会在POM的
<properties>节点定义maven.build.timestamp,这个就是构建发布的时间; - 部分项目会在
<scm>或<description>里附带发布时间相关说明; - 也可以看POM文件本身的生成时间(有些会写在注释里)。
2. 解析元数据里的版本专属时间
在maven-metadata.xml的<versioning>节点下,针对快照版本会有<snapshotVersions>,里面的<updated>字段就是该快照版本的发布/更新时间;部分正式版本的元数据也会关联对应的时间戳,这才是对应版本的真实发布时间。举个例子:
<versioning> <latest>1.0.3</latest> <release>1.0.3</release> <versions> <version>1.0.0</version> <version>1.0.1</version> </versions> <lastUpdated>20240520123456</lastUpdated> <snapshotVersions> <snapshotVersion> <extension>jar</extension> <value>1.0.4-SNAPSHOT</value> <updated>20240521098765</updated> </snapshotVersion> </snapshotVersions> </versioning>
这里的<updated>就是快照版本的发布时间,正式版本如果有类似关联字段也同理。
3. 用Maven命令行查细节
在本地项目里,先执行mvn dependency:list导出依赖列表,然后针对某个依赖,执行:
mvn help:describe -DgroupId=你的依赖groupId -DartifactId=你的依赖artifactId -Dversion=版本号 -Ddetail
输出的详细信息里会包含该依赖的元数据,其中可能就有发布时间。
4. 看仓库文件的Last-Modified响应头
中央仓库里的jar、pom文件,HTTP响应头里的Last-Modified字段就是文件上传到仓库的时间,也就是依赖包的发布时间。你可以通过发送HEAD请求到对应文件的URL来获取这个值。
内容的提问来源于stack exchange,提问作者Pedreiro
相关产品推荐
相关产品推荐

