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

如何查找Versions Maven Plugin检测到的过时依赖来源?

查找Maven依赖管理中未被引用依赖的来源

以下是几个实用命令和方法,帮你定位这两个依赖的引入来源:

1. 查看包含依赖管理条目的完整依赖树

默认的dependency:tree仅显示项目实际引用的依赖,加上-DshowDependencyManagement=true参数后,会列出所有在dependencyManagement中声明的依赖(包括从BOM导入的),结合-Dincludes精准过滤目标依赖:

mvn dependency:tree -DshowDependencyManagement=true -Dincludes=biz.aQute.bnd:biz.aQute.bnd.annotation,org.mockito:mockito-inline

执行后会清晰展示这两个依赖是直接在项目的dependencyManagement中声明,还是通过某个导入的BOM引入的。

2. 直接分析可疑BOM的内容

针对你怀疑的几个BOM,用dependency:describe命令查看其管理的所有依赖明细:

  • 检查AWS Lambda log4j2依赖:
mvn dependency:describe -DgroupId=com.amazonaws -DartifactId=aws-lambda-java-log4j2 -Dversion=1.6.0 -Ddetail
  • 检查Log4j BOM:
mvn dependency:describe -DgroupId=org.apache.logging.log4j -DartifactId=log4j-bom -Dversion=2.21.1 -Ddetail
  • 检查Jackson BOM:
mvn dependency:describe -DgroupId=com.fasterxml.jackson -DartifactId=jackson-bom -Dversion=2.15.3 -Ddetail

命令输出里会列出该BOM管理的所有依赖,直接确认是否包含目标依赖。

3. 检测依赖管理中未被使用的依赖

用dependency:analyze命令找出dependencyManagement中存在但未被项目实际引用的依赖,可结合子模块执行(如果聚合项目下有多个子模块):

# 针对根项目执行
mvn dependency:analyze -DignoreNonCompile
# 针对特定子模块执行
mvn -pl 你的子模块名称 dependency:analyze -DignoreNonCompile

输出中的Unused declared dependencies in dependencyManagement部分会列出这类依赖,同时可能间接提示来源。

4. 手动排查dependencyManagement配置

直接检查根项目和所有子项目的pom.xml中<dependencyManagement>节点,重点看通过<scope>import</scope>导入的BOM条目,这些BOM会将自身管理的依赖注入到项目的dependencyManagement中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:32:52