区块链开发(三):区块链工程逆向:golang源码类关系解析查看
系统:centOS7, 内核:4.18,工程:fabric1.1,提前设置好开发环境变量
1、goland IDE安装plantUML插件:
工具栏File-->settings-->plugins, 到该界面下方点击Browse Repositories,搜plantUML,直接安装;
安装依赖插件:搜Action Tracker,点击直接安装,重启goland
2、安装图形化输出插件:终端下执行yum install graphviz 【Ubuntu下:apt-get install graphviz】
3、安装并执行编译库:终端下执行
go get git.oschina.net/jscode/go-package-plantuml
go build git.oschina.net/jscode/go-package-plantuml
在当前目录下生成go-package-plantuml可执行文件【当前目录最好切换到fabric工程根目录】
4、编译执行某目录下类源码:
参数说明:--codedir 要分析的代码目录
--gopath GOPATH环境变量目录
--outputfile 分析结果保存到该文件
--ignoredir 不需要进行代码分析的目录(可以不用设置)
例:编译执行fabric工程下gossip/election的类
命令:
./go-package-plantuml --codedir /opt/gopath/src/github.com/hyperledger/fabric/gossip/election \
--gopath /opt/gopath \
--outputfile /tmp/result \
--ignoredir /opt/gopath/src/github/hyperledger/fabric/vendor
5、输出类图:两种方式【基于java环境】
(1)goland工程下新建一个election.uml, 将生成的uml.txt内容拷贝覆盖,点击工具按钮输出png
(2)下载plantuml.jar, 终端下:java -jar plantuml.jar /tmp/uml.txt 【下载地址:https://plugins.jetbrains.com/plugin/7017-plantuml-integration】
附:goland也可用其它插件进行反向工程输出,如simpleUML等,pycharm、webstorm和ideaU java集成了diagram组件输出类的xml图,goland也可安装此插件。