使用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了。
这里就是生成的类图文件:

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,就可以看到了。
如果运行出现:

image.png

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

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

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

参考链接

使用工具go-package-plantuml分析go项目源码,自动生成uml类图

plantuml工具介绍

plantuml支持将“文本描述的UML类图”转换成图片形式的类图等。

类图使用例子如下,参考 http://plantuml.com/class-diagram

@startuml
Class11 <|.. Class12
Class13 --> Class14
@enduml

安装go-package-plantuml

go-package-plantuml 项目代码地址 https://git.oschina.net/jscode/go-package-plantuml

下载和编译项目:(系统需要先安装好go编译环境)

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

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

使用go-package-plantuml分析go项目,生成uml类图描述文件

./go-package-plantuml --codedir /appdev/gopath/src/github.com/contiv/netplugin \
--gopath /appdev/gopath \
--outputfile  /tmp/result \
--ignoredir /appdev/gopath/src/github.com/contiv/netplugin/vendor

参数说明
--codedir 要分析的代码目录
--gopath GOPATH环境变量目录
--outputfile 分析结果保存到该文件
--ignoredir 不需要进行代码分析的目录(可以不用设置)

使用plantuml生成类图

下载plantuml https://nchc.dl.sourceforge.net/project/plantuml/plantuml.jar

提示:如果系统没有安装jdk,需要先安装jdk;yum install -y java

执行下面命令生成图片形式的类图/tmp/uml.png

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

如果想生成svg格式的文件,使用-tsvg参数。svg格式的文件,使用浏览器打开,可以搜索类名。

java -jar plantuml.jar /tmp/text.uml -tsvg

猜你喜欢

转载自blog.csdn.net/dwjpeng2/article/details/81667214