最近在看Go源碼,自己寫類圖甚是苦惱器紧。然后就查了下資料邓尤。下面總結(jié)下流程:
利用go-package-plantuml分析go項(xiàng)目
首先畔况,我們需要一個(gè)工具分析GO項(xiàng)目并生成plantuml需要的uml源文件敦跌。
這里澄干,推薦一個(gè)大神的作品:go-package-plantuml,其github地址為HERE柠傍。也是一個(gè)go項(xiàng)目麸俘。
使用go-get安裝并編譯:
go get git.oschina.net/jscode/go-package-plantuml
go build git.oschina.net/jscode/go-package-plantuml
(當(dāng)然,需要具有GO的環(huán)境惧笛。)
build后疾掰,直接執(zhí)行,其中有四個(gè)參數(shù):
--codedir 目標(biāo)分析的代碼目錄
--gopath 本地設(shè)置GOPATH環(huán)境變量目錄
--outputfile 分析結(jié)果保存到該文件(設(shè)置了之后還是保存到了/tmp路徑下)
--ignoredir 不需要進(jìn)行代碼分析的目錄(可以不用設(shè)置)
這里我們就分析下該項(xiàng)目:
./go-package-plantuml --codedir /home/user/go/src/git.oschina.net/jscode/go
-package-plantuml --gopath /home/user/go --outputfile /home/user/result.txt
結(jié)果輸出還是到了INFO[0001] 數(shù)據(jù)已保存到/tmp/uml.txt
徐紧。
plantuml工具
其能夠?qū)⒅付ǜ袷降腢ML描述文件(文本形式)轉(zhuǎn)化為可視化的圖形文件(我們常見的UML圖)。
具體的UML描述文件格式和規(guī)范見官方網(wǎng)站的DOC炭懊。
下載地址:官方下載地址
可運(yùn)行程序是一個(gè)jar包并级。然后確保本地具有java環(huán)境后,執(zhí)行jar:
java -jar plantuml.jar /tmp/uml.txt
應(yīng)該就ok了侮腹。
這里就是生成的類圖文件:
So Good3氨獭!8缸琛S!·
這里有個(gè)小問題加矛,可能有些朋友會(huì)遇到這個(gè)問題:
java.io.IOException: Cannot run program "/usr/bin/dot": error=2, No such file or directory
然后履婉,看了一下,其需要安裝一個(gè)畫圖組件(非常牛逼):GraphViz斟览。
官方網(wǎng)站上可以見可執(zhí)行文件的下載版本毁腿,同時(shí)也可通過yum進(jìn)行安裝:
yum list 'graphviz*' 查看已安裝graphviz包
yum install 'graphviz*' 安裝graphviz
安裝完之后,運(yùn)行which dot
苛茂,就可以看到了已烤。
如果運(yùn)行出現(xiàn):
就在run jar包的時(shí)候指定dot的位置:
java -jar plantuml.jar -verbose -graphvizdot /usr/bin/dot /tmp/uml.txt
這里dot的位置是你安裝的dot的位置,通過which dot
可以找到妓羊。