如何追踪Bazel构建中Jackson 2.14.0依赖的引入来源?
追踪Bazel中Jackson旧版本的依赖引入路径
正确使用rdeps命令排查
解决rdeps语法错误,直接用以下格式查询反向依赖:
- 查直接引入该依赖的目标(只看第一层):
bazel query 'rdeps(//:target, @maven//:v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.14.0/jackson-annotations-2.14.0.jar, 1)' --nohost_deps --noimplicit_deps - 查完整的依赖引入路径(所有层级):
bazel query 'rdeps(//:target, @maven//:v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.14.0/jackson-annotations-2.14.0.jar)' --nohost_deps --noimplicit_deps - 用通配符简化长依赖标签:
bazel query 'rdeps(//:target, @maven//:*jackson*2.14.0*, 1)' --nohost_deps --noimplicit_deps
生成可视化依赖图
用bazel query输出dot格式文件,再转成图片直观查看依赖链:
- 生成依赖图文件:
bazel query 'deps(//:target)' --nohost_deps --noimplicit_deps --output=dot > deps.dot - 用Graphviz转成图片(需提前安装Graphviz):
dot -Tpng deps.dot -o deps.png
打开图片后就能清晰看到Jackson 2.14.0是被哪个依赖间接引入的。
检查依赖配置文件
- 查看
WORKSPACE或MODULE.bazel里的maven依赖声明,比如maven_install或rules_jvm_external的配置,有没有依赖会间接拉取Jackson 2.14.0。 - 若用
rules_jvm_external,运行以下命令生成完整依赖树文件:bazel run @maven//:pin
打开生成的maven_install.json,搜索Jackson 2.14.0即可找到它的父依赖。
内容的提问来源于stack exchange,提问作者gph
相关产品推荐
相关产品推荐

