有时候读别人的源码时,搭配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
2
<doclet name="nl.talsmasoftware.umldoclet.UMLDoclet" path="lib/umldoclet-2.0.10.jar"> 
</doclet>

path就是UMLDoclet的jar包位置

大概是这样的

最后在NetBeans里右键项目,选择Generate Javadoc即可生成。

评论