使用plantuml生成GO的类图

最近在看Go源码,自己写类图甚是苦恼。然后就查了下资料。下面总结下流程:

利用go-package-plantuml分析go项目

首先,我们需要一个工具分析GO项目并生成plantuml需要的uml源文件。
这里,推荐一个大神的作品:go-package-plantuml,其github地址为HERE。也是一个go项目。
使用go-get安装并编译:

go get git.oschina.net/jscode/go-package-plantuml
go build git.oschina.net/jscode/go-package-plantuml

(当然,需要具有GO的环境。)
build后,直接执行,其中有四个参数:

--codedir 目标分析的代码目录
--gopath 本地设置GOPATH环境变量目录
--outputfile 分析结果保存到该文件(设置了之后还是保存到了/tmp路径下)
--ignoredir 不需要进行代码分析的目录(可以不用设置)

这里我们就分析下该项目:

./go-package-plantuml --codedir /home/user/go/src/git.oschina.net/jscode/go
-package-plantuml --gopath /home/user/go --outputfile /home/user/result.txt 

结果输出还是到了INFO[0001] 数据已保存到/tmp/uml.txt

plantuml工具

其能够将指定格式的UML描述文件(文本形式)转化为可视化的图形文件(我们常见的UML图)。
具体的UML描述文件格式和规范见官方网站的DOC。
下载地址:官方下载地址
可运行程序是一个jar包。然后确保本地具有java环境后,执行jar:

java -jar plantuml.jar /tmp/uml.txt

应该就ok了。
这里就是生成的类图文件:


使用plantuml生成GO的类图_第1张图片
image.png

So Good!!!!!·

这里有个小问题,可能有些朋友会遇到这个问题:

java.io.IOException: Cannot run program "/usr/bin/dot": error=2, No such file or directory

然后,看了一下,其需要安装一个画图组件(非常牛逼):GraphViz。
官方网站上可以见可执行文件的下载版本,同时也可通过yum进行安装:

yum list 'graphviz*' 查看已安装graphviz包
yum install 'graphviz*' 安装graphviz

安装完之后,运行which dot,就可以看到了。
如果运行出现:

使用plantuml生成GO的类图_第2张图片
image.png

就在run jar包的时候指定dot的位置:

java -jar plantuml.jar -verbose -graphvizdot /usr/bin/dot /tmp/uml.txt

这里dot的位置是你安装的dot的位置,通过which dot可以找到。

参考链接

  • graphviz安装
  • plantuml issue 53

你可能感兴趣的:(使用plantuml生成GO的类图)