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

如何查询Maven仓库中依赖库的最新版本(支持批量)

高效获取依赖库最新版本的解决方案

我维护一个已有25年历史的老项目,采用Shell脚本而非Maven构建,所有依赖库信息记录在文本文件中,格式示例如下:

bson-5.4.0.jar; https://mvnrepository.com/artifact/org.mongodb/bson/;

部分依赖来自SourceForge、Oracle等非Maven仓库平台。

目前我通过Python脚本爬取Maven Repository页面提取版本信息,页面元素示例:

<a href="bson/5.4.0" class="vbtn release">5.4.0</a>
...
<a href="bson/4.11.1" class="vbtn release">4.11.1</a>
...
<a href="bson/2.14.0" class="vbtn release">2.14.0</a>

但项目包含约50个此类依赖,逐个爬取效率极低,希望找到更简便的方式,比如支持单依赖查询的REST服务(示例请求与返回如下),或支持批量查询多个依赖的服务:

单依赖查询示例请求

.../get_version?artifact=org.mongodb/bson/

单依赖查询示例返回JSON

{ "artifact": "org.mongodb/bson/", "versions": ["5.4.0", ... "4.11.1", ... "2.14.1"]}

批量依赖查询示例请求

.../get_versions?artifacts=org.mongodb/bson/;org.slf4j/slf4j-api;io.dropwizard.metrics/metrics-core

实际可用的方案

1. Maven Central官方REST API

Maven Central提供官方结构化查询接口,无需爬取页面:

  • 单依赖查询:构造请求https://search.maven.org/solrsearch/select?q=g:org.mongodb+a:bson&wt=json,其中g:对应groupId,a:对应artifactId,返回的JSON中response.docs字段包含该依赖的所有版本信息;
  • 批量查询:通过多条件OR组合实现,比如q=(g:org.mongodb+a:bson)+OR+(g:org.slf4j+a:slf4j-api)&wt=json,一次性获取多个依赖的版本数据。

2. 本地Maven插件辅助

如果不想依赖外部API,可以临时编写极简pom.xml,将所有依赖按Maven格式声明,然后运行maven-dependency-plugin的versions:display-dependency-updates目标,批量检查所有依赖的最新版本,再将结果同步到项目的文本依赖文件中。

3. 第三方API服务

部分第三方平台提供更友好的批量查询能力,支持按groupId:artifactId格式批量提交依赖,返回结构化版本数据,免费额度通常足够小项目使用。

特殊依赖处理

对于SourceForge、Oracle等非Maven仓库的依赖,需使用对应平台的专属API查询版本(比如SourceForge提供项目版本查询接口),无法通过Maven相关API覆盖。


内容的提问来源于stack exchange,提问作者Michał Niklas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:50:07