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

如何获取通过Maven Deploy Plugin发布到Nexus的快照版本时间戳

1 Maven命令方案(无需下载构件)

使用3.3.0及以上版本的Maven Dependency Plugin的dependency:properties目标,可直接解析快照版本的元数据,将带时间戳的完整版本号输出为Maven属性,全程不会下载构件包:

mvn org.apache.maven.plugins:maven-dependency-plugin:3.6.0:properties \
  -Dartifact=你的groupId:你的artifactId:1.2.3-SNAPSHOT:jar \
  -DrepoUrl=你的Nexus快照仓库地址

执行完成后,控制台会输出类似[INFO] Set property '你的groupId:你的artifactId:jar:version' = '1.2.3-20210829.151247-23'的内容,直接提取该属性值即可拿到时间戳后缀。
如果你是在当前构件的构建流程中刚执行完deploy操作,也可以直接从deploy插件的执行日志中提取上传的构件文件名,里面自带完整时间戳,无需额外执行命令。

2 Nexus REST API方案

Nexus 3.x

调用资产搜索接口,仅拉取元数据信息:

GET /service/rest/v1/search/assets?repository=你的快照仓库名&group=你的groupId&name=你的artifactId&version=1.2.3-SNAPSHOT

返回结果的items[].maven2.version字段即为带时间戳的完整版本号,items[].maven2.snapshotTimestamp字段可直接获取时间戳部分。

Nexus 2.x

调用元数据解析接口:

GET /service/local/artifact/maven/resolve?g=你的groupId&a=你的artifactId&v=1.2.3-SNAPSHOT&r=你的快照仓库名&e=jar

返回结果的data.version字段即为带时间戳的完整版本号。

3 程序化实现方案

直接请求对应快照版本目录下的maven-metadata.xml文件,该文件体积仅几KB,无需下载构件:
请求地址格式:

${Nexus根地址}/repository/${快照仓库名}/${groupId替换.为/}/${artifactId}/1.2.3-SNAPSHOT/maven-metadata.xml

文件中<snapshot>标签下的<timestamp>和<buildNumber>字段拼接后即为你需要的YYYYMMDD.HHMMSS-NNN格式时间戳,示例内容如下:

<snapshot>
  <timestamp>20210829.151247</timestamp>
  <buildNumber>23</buildNumber>
</snapshot>

你可以根据技术栈选择对应的工具解析该XML即可,比如Shell环境可使用curl + xmllint、Python环境使用requests + lxml、Java环境使用DOM4J等。

内容的提问来源于stack exchange,提问作者Peter Sivák

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:36:03