如何在sbt中生成仅包含内部项目的依赖关系图?
sbt 内部项目依赖图生成方案
可以生成仅包含内部项目的依赖图,且支持纳入 ProjectRef 类型的跨目录内部项目依赖,具体操作方法如下:
仅生成内部项目依赖图的操作
- 如果你使用的是 sbt 1.4+ 版本(自带官方依赖图功能,推荐),执行命令时添加组织名过滤参数,即可过滤掉所有第三方外部依赖,仅保留内部项目:
将占位符替换为你内部项目统一的组织名即可。sbt dependencyDot --include-projects "你的内部组织名::*" - 如果你使用的是旧版本 sbt + 第三方
sbt-dependency-graph插件,对应过滤命令为:sbt "dependencyDot includeFilter=*你的内部组织名*"
纳入 ProjectRef 类型依赖的配置
如果默认生成的结果中没有包含 dependsOn(ProjectRef(...)) 声明的跨目录依赖,在 build.sbt 的对应项目配置块中添加以下设置即可:
// 开启依赖图对 ProjectRef 类型依赖的识别 dependencyDotIncludeProjectRefs := true // 可选:完全屏蔽第三方库依赖,生成结果仅保留所有内部项目 dependencyDotIncludeModules := false
配置完成后重新执行生成命令即可,后续转成图片的操作和你已知的方法一致:
sbt dependencyDot
[info] Wrote dependency graph to 'target/dependencies-compile.dot'
dot target/dependencies-compile.dot -Tpng -o /tmp/dependencies-compile.png
内容的提问来源于stack exchange,提问作者IntrestedInSpark
相关产品推荐
相关产品推荐

