Goland中使用GoPlantUml生成ER关系图

简介: 配置GoPlantUml环境,在Goland中生成ER关系图等,帮助开发小伙伴高效、友好地阅读和分析源码结构。

前言


  Golang语言在近些年的开发语言中异军突起,在越来越多的公司项目中频繁出镜,也有越来越多的中间件选择使用Golang语言进行实现。正所谓源码之下无秘密,更友好地翻读源码对于理解功能特性以及后续使用非常有帮助,观摩学习源码也是非常好的一种学习方式。


  本篇基于Golang常用开发工具Goland结合GoPlantUml进行代码ER关系图生成,便于更好阅读代码和梳理逻辑关系。


环境配置


基于MacOS环境


下载PlantUml插件


  打开Goland,Preference -> Plugins -> Marketplace -> 搜索plantuml -> 安装


网络异常,图片无法展示
|


安装GoPlantUml


goplantuml可执行文件安装到本地$GOBIN目录下:


go get github.com/jfeliu007/goplantuml/cmd/goplantuml

### 或者

go install go get github.com/jfeliu007/goplantuml/cmd/goplantuml


安装Graphviz


  下载地址:https://graphviz.org/download/


### macos下执行

brew install graphviz


  graphviz的下载依赖非常多,这里容易出现的问题是依赖不可用不可下载,可以通过修改brew源为阿里云镜像完成,如下:


### 打开配置文件

vi ~/.zprofile

### 输出brew环境变量

export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles

### 配置生效

source ~/.zprofile


配置External Tools


Preference -> Tools -> External Tools -> 新增/编辑


  • Name:goplantuml(可自定义)
  • Program:/usr/local/go/bin/goplantuml (goplantuml的安装路径,可以通过$GOBIN获取到)
  • Arguments:-recursive --output=$FileDir$.puml $FileDir$
  • Working directory: /User/workspace/bin (Project目录路径)


网络异常,图片无法展示
|


生成PlantUml


  选中项目中要生成的目录,这里是acl,鼠标右键找到External Tools -> goplantuml


网络异常,图片无法展示
|


  生成文件acl.puml文件,即acl目录下ER关系图

网络异常,图片无法展示
|


  当打开查看时,遇到问题Cannot Find Graphviz

网络异常,图片无法展示
|


  添加环境变量,指定Graphviz的执行路径


###添加系统变量

GRAPHVIZ_DOT=/usr/local/Cellar/graphviz/2.48.0/bin


  或者在项目中配置graphviz执行路径

网络异常,图片无法展示
|


  重启后可以正常看到该目录下的ER关系图,如下:


网络异常,图片无法展示
|


相关文章
|
7月前
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
1122 1
|
6月前
|
存储 关系型数据库 MySQL
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
105 1
|
7月前
ER图和对应关系模式(只写关键)
ER图和对应关系模式(只写关键)
265 0
架构学习——ER图
架构学习——ER图
246 0
|
数据库
ER图总结
ER图总结
179 0
|
数据库
er图-为什么画er图?有哪些规范?
提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。我认为就是用来描述程序产生的数据之间的关系。
|
移动开发 供应链 NoSQL
概念结构设计ER图
概念结构设计ER图
653 0
|
缓存 开发工具 Python
[oeasy]python0141_自制模块_module_reusability_复用性
[oeasy]python0141_自制模块_module_reusability_复用性
87 0
弱弱问一下,这两个图,是不是传说中的ER图呀?
      【图一】   【图二】     就是这两个图,刚刚用Visio画的。
945 0
|
图形学
unity脚本开发:一些重要的类和类间的关系图
重要的类TransfromObjectGameObjectComponentTimeAnimation 一、Component 找组件属性:GameObjecttagtransfromg 函数:GetComponmentGetComponmentInChildrenGetComponmentInP...
1278 0