有时候读别人的源码时,搭配UML图会更加方便易懂,所以研究了一下通过Java代码生成UML类图的方法。
工具介绍:
Graphviz
Graphviz 是一款由 AT&T Research 和 Lucent Bell 实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络,支持多种格式输出。
Graphviz 的输入是一个用 dot 语言编写的绘图脚本,通过对输入脚本的解析,分析出其中的点、边及子图,然后根据属性进行绘制。
Graphviz layout 以简单的文本语言描述图形,并以实用的格式制作图表,如用于网页的 images 和 SVG ;用于放入在其它文件中或显示在交互式图形浏览器中的 PDF 和 Postscript 。
PlantUML
PlantUML是一个通过简单直观的语言,利用Graphviz来绘制UML图的Java类库。支持的UML图包括:时序图、用例图、类图、组件图、活动图等。
UMLDoclet
UMLDoclet可以在生成javadoc时,根据java代码自动生成PlantUML图像并插入到javadoc页面中。
工具安装
Graphviz安装
首先到官网下载地址:http://www.graphviz.org/download/
选择:Stable Windows install packages
在接下来的页面中找到你要的版本,由于PlantUML推荐使用32位的Graphviz,所以这里下载32位的安装包:
10/cmake/Release/Win32/graphviz-install-2.44.1-win32.exe
在安装时记得选择Add Graphviz to the system PATH for all users
安装之后右键屏幕左下角开始菜单,选择Windows PowerShell(管理员)
一定要用管理员身份
在打开的PowerShell(CMD也可以)中运行dot -c
至此Graphviz安装完成
UMLDoclet下载
PlantUML不需要安装,因为UMLDoclet已经包含了。
UMLDoclet需要Java9及以上,请自行配置你的IDE。
由于我这个项目是用ant编译的,所以要自己配置jar包。如果你是用maven或者gradle,直接去看官网教程
可以去GitHub仓库查看最新版本,下载jar包:
https://github.com/talsma-ict/umldoclet/releases
由于最新版没有提供jar包,而且我自己编译失败了,所以下载了一个旧版jar包
后来发现可以通过阿里云的maven镜像仓库下载:
https://maven.aliyun.com/mvn/search
打开后搜索umldoclet
即可
下载好的jar包可以放到项目的lib文件夹里。
在Eclipse的ant项目中使用UMLDoclet
由于时间关系,我目前仅在NetBeans中试用了UMLDoclet,Eclipse下大同小异,就是在ant脚本中加入一段配置,可以参考NetBeans的方法。以后有空再做补充。
在NetBeans的ant项目中使用UMLDoclet
打开项目文件夹中的nbproject
里的build-impl.xml
找到target:-javadoc-build
在该标签下的</javadoc>
前一行插入以下配置代码:
1 | <doclet name="nl.talsmasoftware.umldoclet.UMLDoclet" path="lib/umldoclet-2.0.10.jar"> |
path
就是UMLDoclet的jar包位置
最后在NetBeans里右键项目,选择Generate Javadoc
即可生成。