最近在看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了。
这里就是生成的类图文件:
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
,就可以看到了。
如果运行出现:
就在run jar包的时候指定dot的位置:
java -jar plantuml.jar -verbose -graphvizdot /usr/bin/dot /tmp/uml.txt
这里dot的位置是你安装的dot的位置,通过which dot
可以找到。
参考链接
- graphviz安装
- plantuml issue 53