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

如何通过命令行或REST API查询指定Maven构件的可用版本?

如何从命令行查询Maven构件的可用版本?

当然有不少便捷的方法能帮你在命令行里查询Maven构件的版本,不用再频繁打开浏览器啦!针对你提到的javax.enterprise:cdi-api,下面分享几种实用方案:

1. 使用Maven官方插件直接查询

Maven的versions插件自带了查询构件版本的功能,只要你本地有Maven环境就能用,不用额外安装工具。

运行以下命令即可:

mvn versions:search-repositories -Dartifact=javax.enterprise:cdi-api

这个命令会从你Maven配置的所有远程仓库(默认包含Maven Central)查询该构件的所有可用版本,输出结果会清晰列出版本号和对应的仓库信息。如果需要指定特定仓库,可以加上-DremoteRepositories=central参数(把central换成你需要的仓库ID)。

2. 调用Maven Central的REST API

如果不想启动Maven进程,直接用curl这类HTTP工具调用Maven Central的搜索API也是个高效办法,再配合jq(轻量JSON解析工具)还能快速提取纯版本号。

基础请求命令:

curl -s "https://search.maven.org/solrsearch/select?q=g:javax.enterprise%20AND%20a:cdi-api&rows=20&wt=json"

提取纯版本号(需安装jq):

curl -s "https://search.maven.org/solrsearch/select?q=g:javax.enterprise%20AND%20a:cdi-api&rows=50&wt=json" | jq -r '.response.docs[] | .v' | sort -V

这里的sort -V会帮你按照版本号的逻辑顺序排序,方便快速找到最新版本。

3. 针对私有Nexus仓库的REST API

如果你平时用的是公司内部的Nexus仓库,可以调用Nexus专属的REST API查询。假设你的Nexus地址是http://your-nexus-server,仓库ID是maven-public,命令如下:

curl -s "http://your-nexus-server/service/rest/v1/search/assets?repository=maven-public&maven.groupId=javax.enterprise&maven.artifactId=cdi-api" | jq -r '.items[] | .maven.version' | sort -V

记得替换成你自己的Nexus地址和仓库名称,如果仓库需要认证,可以加上-u username:password参数。

小技巧:封装成Shell脚本

为了更方便复用,你可以把查询逻辑写成一个简单的Shell脚本:

#!/bin/bash
# 脚本用法:./maven-version.sh groupId artifactId

if [ $# -ne 2 ]; then
    echo "用法:$0 <groupId> <artifactId>"
    exit 1
fi

GROUP_ID=$1
ARTIFACT_ID=$2

curl -s "https://search.maven.org/solrsearch/select?q=g:$GROUP_ID%20AND%20a:$ARTIFACT_ID&rows=50&wt=json" | jq -r '.response.docs[] | .v' | sort -V

保存为maven-version.sh,赋予执行权限chmod +x maven-version.sh,之后就可以直接用./maven-version.sh javax.enterprise cdi-api快速查询版本了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:28:18