如何解决go module循环依赖问题?有什么直观展示 Go 模块依赖关系的可视化工具?

在构建 Golang 项目时,我曾遇到过一个令人困惑的问题:明明已经明确指定了依赖包的版本,但在实际构建过程中,版本号却莫名其妙地被自动升级了。这一现象让我一度摸不着头脑,直到我了解到可以使用 go mod graph 命令来列出所有的依赖关系。然而,该命令的输出结果并不直观,需要将其复制到文本编辑器中进行信息检索,这无疑增加了操作的复杂度。为了解决这一问题,我开始寻找能够更直观地展示 Go 模块依赖关系的可视化工具。

一、有什么好用的可视化工具?

我在网上检索了“Go”、“Module”、“依赖关系”、“可视化” 等关键词,发现 网上还是有很多工具。大部分方案都是用的 graphvizechart, 或者用绘制图片,我就试了几个。

graphviz

graphviz 这个工具很强大,但需要通过其他渠道安装,且生成的svg可读性也不那么好,特别是依赖的包多起来之后,例如下面这个:

如何解决go module循环依赖问题?有什么直观展示 Go 模块依赖关系的可视化工具?

这线太乱了,根本看不了呀。

echart

于是乎我转向 echart,哇哦,看着挺不错的,鼠标悬停反馈也不错,配色也很鲜艳。

如何解决go module循环依赖问题?有什么直观展示 Go 模块依赖关系的可视化工具?

echart 方案很漂亮,但没法用。svg我还能搜索包名,echart 这个不显示包名。

二、如何安装和使用gmchart?

最终我转向了go mod graph 可视化工具—— gmchart

github: https://github.com/PaulXu-cn/go-mod-graph-chart

安装方法

go install github.com/PaulXu-cn/go-mod-graph-chart/gmchart

检查安装情况

如下就是成功了:

gmchart --help

Usage of ~\go\bin\gmchart:
  -debug int
        is debug model
  -keep int
        start http server not exit

使用方法

进入 golang 项目,输入命令:

go mod graph | gmchart

会自动打开浏览器,如果没有就手动访问 http://127.0.0.1:60306 就能看到。

如何解决go module循环依赖问题?有什么直观展示 Go 模块依赖关系的可视化工具?

可以看到,它将依赖形成了一个依赖树,你可以知道某个包在第几层被引入的,非常直观。网页内是一个svg,你要找某个包也非常方便,直接 ctr+F 就能检索。

结语

经过一系列的尝试与比较,我最终选择了 gmchart 这一 Go mod graph 可视化工具。它不仅安装简便,使用方法也十分友好。通过简单的命令操作,gmchart 能够自动生成一个包含所有依赖关系的网页,以树状结构清晰地展示各个包之间的依赖关系。这不仅让我能够直观地了解项目的依赖情况,还大大提高了检索和定位特定包的效率。

延展阅读:

淘宝资损防控是什么?电商商家如何避免大促优惠叠加计算不当造成资金损失?

如何提升电商客服的30秒响应率?客户因等待太久而流失该怎么办?

2024双11京东中腰部商家怎么根据预算和用户画像高效投放广告?

咨询方案 获取更多方案详情                        
(0)
研发专家-亚瑟研发专家-亚瑟
上一篇 2024年10月22日 下午4:39
下一篇 2024年9月23日 下午9:50

相关推荐