生成golang项目UML图利器--plantuml

背景

最近在查看公司的golang项目,需要进行流程的梳理,但由于项目结构较为复杂、梳理起来较为缓慢,故寻求一种自动化的uml生成工具,在uml基础上更方便梳理。采用的uml生成工具为plantuml

安装

步骤一: 安装go-package-plantuml

go-package-plantuml用于分析golang项目并生成plantuml需要的uml源文件。

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

build完成之后,会生成一个可执行文件go-package-plantuml,使用该可执行文件分析项目:

./go-package-plantuml --codedir /.../...
-package-plantuml --gopath `$GOPATH` --outputfile uml.txt

参数说明:

--codedir 目标分析的代码目录
--gopath GOPATH环境变量目录
--outputfile 分析结果的保存路径,注意!使用过程中这个没啥用,设置了之后还是保存到了/tmp路径下)
--ignoredir 不需要进行代码分析的目录(可选)
步骤二: 安装plantuml.jar

经过步骤一之后,可以在获得uml的源文件/tmp/uml.txt,这是个文本格式的文件,不方便进行阅读,需要进一步转化成图片格式,这需要使用到plantuml.jar包。
plantuml.jar的下载链接

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

指令执行完毕之后,即可生成文件/tmp/uml.png,点开即可查看。

如果上述指令过程中出现异常:

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

则需要安装graphviz,graphviz下载地址

注意:需要保证系统中已经安装好了java的运行环境,此处不再赘述。

遇到的问题

  • 问题1:生成的/tmp/uml.png图片显示不完全。这是以为plantuml默认限制图片的长度和宽度为4096,如果图片过大会被截取。解决办法:使用-DPLANTUML_LIMIT_SIZE参数是设置图像的宽高。
java -DPLANTUML_LIMIT_SIZE=8192 -jar plantuml.jar -charset UTF-8 E:\doc\index.puml

参考链接

plantuml.jar的下载链接
PlantUML导出大图被截取和乱码

你可能感兴趣的:(golang,uml)