在构建 Golang 项目时,你是否也遇到过这样的问题:明明指定了依赖的包版本,但在构建时版本号却自动升上去了?这个问题让人非常困惑。当时,我也不知道为什么会这样,后来才了解到可以使用 go mod graph
命令来列出所有的依赖关系。然而,试用之后发现,输出的信息一点都不直观,还需要手动复制到文本编辑器中进行检索,非常麻烦。
一、市场上的解决方案
为了更直观地展示 Go Module 依赖关系,我尝试了几种市场上的主流可视化工具。
Graphviz
Graphviz 是一个功能强大的工具,可以通过代码生成各种图形,包括依赖图。但是,它需要额外安装,生成的 SVG 图可读性不高,特别是当依赖包多起来之后,线条会变得非常混乱,例如下面这个示例:
这线太乱了,根本看不了呀。
ECharts
ECharts 是另一个备受推崇的可视化工具,其生成的图表视觉效果很好,鼠标悬停时的反馈也很不错,配色鲜艳。
echart 方案很漂亮,但没法用。svg我还能搜索包名,echart 这个不显示包名。
终极解决方案:GMChart
经过一番尝试,我最终找到了一个理想的解决方案——GMChart。这是一个专门用于 Go Module 依赖关系可视化的工具,既直观又高效。
GMChart 的安装与使用
首先,安装 GMChart 非常简单,只需要执行以下命令:
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
在项目中使用 GMChart
进入 Golang 项目目录,运行以下命令:
go mod graph | gmchart
这将自动打开浏览器,如果没有自动打开,可以手动访问 http://127.0.0.1:60306
,就能看到如下图所示的依赖关系图:
GMChart 将依赖关系以树状结构呈现,清晰地显示了每个包的层级和引入关系。网页中的图表是 SVG 格式,可以使用浏览器的搜索功能(Ctrl+F)轻松找到特定的包,非常方便。
GMChart 的独特优势
- 直观的可视化:GMChart 将复杂的依赖关系图形化,清晰展示每个包的引入层级。
- 便捷的搜索功能:SVG 格式支持浏览器内搜索,快速定位特定依赖包。
- 简易的安装和使用:一条命令安装,简单命令生成图表,极大提高了开发效率。
二、总结
通过使用 GMChart,Golang 开发者可以轻松理清复杂的依赖关系,避免版本冲突带来的问题。其直观的可视化展示和便捷的搜索功能,让依赖管理变得前所未有的简单。
延展阅读:
如何使用Ollama与AnythingLLM零成本搭建本地知识库?
咨询方案 获取更多方案详情