接触一个新项目, 阅读官方库或第三方package,经常使用自带的go list命令或用depth包来查看其依赖了哪写包,如:
go list
该命令后面的参数./下,必须包含.go文件. ./将列出当前目录下所有.go文件的依赖,也可以指定具体某个.go文件,如go list -json xxx.go
该参数既可以是指定的本地路径,也可以是本地go/src路径下安装的某个第三方package,也可以是官方库,如:
该命令无法列出github公开可访问,但本地没有的package的依赖,如:
返回值部分字段的解释:
Imports 字符串切片([]string): 该代码包中的源码文件显式导入的依赖包的导入路径的列表。
Deps 字符串切片([]string): 所有的依赖包(包括间接依赖)的导入路径的列表。
只查看某个字段,可以加-f 双花括号 .字段名 双花括号命令 (需去掉-json参数),如:
depth
[文档及安装](https://github.com/KyleBanks/depth)
同样也可以查看go官方库的依赖:
查看本地go/src路径下已有的包:
可配合其-internal,-max,-explain target-package,-json等可选参数使用.
go-callvis
以上两个工具,都只能在命令行输出项目的依赖关系,希望能有更直观地图像方式. go-callvis这个包,完美解决了该需求~
调用关系如下:
- 绿色是官方package
- 黄色是第三方package
美中不足是该工具要求指定目录下必须有main.go文件,
默认输出格式为svg,可以通过-format=png指定为需要的格式
原文链接: https://dashen.tech/2016/04/15/go-callvis-极其好用的Go程序调用图生成工具/
版权声明: 转载请注明出处.