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

如何通过CLI命令获取Maven项目中指定artifact的实际使用版本

你当前使用的-Dartifact参数的作用是查询仓库中对应构件的信息,而非当前项目依赖树的解析结果,因此只能返回最新可用版本,无法拿到项目实际依赖的版本。你可以使用以下两种方案实现需求:

方案1:使用maven-dependency-plugin的list目标过滤(通用方案)

该方案不依赖版本的定义方式,只要是项目解析后实际引入的依赖都可以正常获取版本:

RESULT+=$(mvn org.apache.maven.plugins:maven-dependency-plugin:3.6.0:list -DincludeGroupIds=$GROUP_ID -DincludeArtifactIds=$ARTIFACT_ID -q -DforceStdout | grep -oP '(?<=^\[INFO\] ).*' | cut -d: -f4)
echo "$RESULT"

参数说明:

  • -DincludeGroupIds、-DincludeArtifactIds用于过滤仅返回指定的构件结果
  • 后续的grep、cut命令用于提取返回结果中的版本字段,Windows环境可替换为对应的字符串处理命令
  • 如果是多模块项目,可追加-pl 子模块相对路径指定查询的模块,避免返回多个模块的依赖结果

方案2:通过properties查询(仅适用版本由properties管理的场景)

如果目标依赖的版本是在pom的<properties>标签中统一定义的,可直接通过help插件查询对应属性:

RESULT+=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=对应版本的属性名 -q -DforceStdout)
echo "$RESULT"

该方案仅适用于版本通过properties定义的场景,通用性弱于方案1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:24:01