PlantUML – 程序员必备绘图工具,不只是UML- Coder行
来源: coderxing.com
可能很多程序员喜欢用Viso(window下)或OmniGraffle(Mac 下)绘制UML图。但你用过 PlantUtml 之后,你可能会觉得其他工具简直“弱爆了”!。Viso或OmniGraffle 这类工具的确更灵活,绘制系统结构图的时候更有优势,但在绘制UML方面(不太关心样式的情况下),他们和 PlantUML比起来效率就低很多。PlantUML 完全使用代码方式绘图,更符合程序员的习惯,让逻辑表述更清晰,更易于修改。
官方网址:plantuml.com
图片来源 wikimedia
Contents
快速入门
核心的使用方式就是“名称”加“箭头”,官方的入门文档也只有两段话:
- 编写绘图代码文件,如:sequenceDiagram.txt
@startuml Alice -> Bob: test @enduml
- 运行命令生成图片,会自动生成名为 sequenceDiagram.png 文件
java -jar plantuml.jar sequenceDiagram.txt
So Easy!,用PlantUML绘制UML图就是这么简单,形象你用Viso之类的工具需要拖拽多久?用代码方式简单明了,几秒钟搞定。
当然这里使用命令行方式生成图片未免有些笨拙,后面会介绍跟好用的工具。
PlantUML 能做什么?
UML 图形是必备
- 时序图:
更多例子参考官方网址
- 用例图:
更多例子参考官方文档
- 类图:
更多例子参考官方文档
- 活动图/流程图
更多例子参考官方文档
- 组件图
更多例子参考官方文档
- 状态图
更多例子参考官方文档
- 对象图
更多例子参考官方文档
不是只有 UML
PlantUML 的强大之处在于不只能绘制UML,还能绘制更多:
- 复杂的数学公式:
更多例子参考官方文档
- 表格:
更多例子参考官方文档
- Graphviz/DOT
可以使用 Graphviz/DOT 语法绘图:
- 图表:
更多例子参考官方文档
- 使用图标
更多例子参考官方文档
- XEarth 地图图片
更多例子参考官方文档
一些好玩的功能
- 向 史蒂夫·乔布斯 和 斯蒂夫·盖瑞·沃兹尼亚克 致敬!真正的hacker应该做的事情!
来源地址:点这里
- ASCII Art
PlantUML还可将绘图代码绘制成 ASCII ART 形式:
来源地址:点这里
还可以将ASCII ART 转成图片形式:
来源地址:点这里
- 数独游戏
来源地址:点这里
- 手绘风格
来源地址:点这里
来源地址:点这里
支持中文
工具
在线编辑工具
- https://www.planttext.com/
非常强大,单不挂代理国内访问会比较慢,工具引了几个google的js文件,国内访问不了只能等到超时才行。
- 官方在线编辑工具
非常简单的工具,截图:
但是可以生成一个可引用的图片地址:
- Plant UML Previewer
也是一个非常简单的编辑器,有预发高亮功能。
- 其他官方推荐在线编辑器
有些是收费的。
参考:官方文档
本地工具
PlantUML 可集成的IDE工具非常多,几乎主流编辑器都支持:
参考:官方文档
下面仅用Eclipse举例
集成到 Eclipse
- 安装 Graphviz/DOT 官方网址:http://www.graphviz.org/Download.php Mac可以用
brew install graphviz
安装 - 安装PlantUML Eclipse扩展: 更新地址(Eclipse 4 ):http://basar.idi.ntnu.no/svn/tdt4100/anonymous/trunk/updatesite/
- 配置Graphviz Path 设置->PlantUML->Graphviz Path
- 打开PlantUML view window -> show view -> PlantUML
- 试用 对于已有的Java文件,PlantUML 可以自动绘制出类图:
普通UML绘制试用txt文件即可:
参考:官方文档
自建 PlantUML Web 服务
如果你觉得用别人的在线服务,以及别人的图片地址不够安全或稳定。PlantUML 官方也提供自建Web服务的套件,基于 Java 和 Tomcat。参考:官方文档
自建效果参考 http://www.plantuml.com/plantuml/uml/
多种开发语言调用
参考:官方文档
其他在线UML工具
- ArgoUml
本地IDE工具,略重,截图:
- mermaid
和 PlantUML类似,也是通过代码绘制图形,样式比较美观,功能没有 PlantUML丰富,截图:
- Draw.io
完全在线的图例编辑工具,可绘制的类型非常丰富,相当于在线的Viso。
- ProcessOn
国产在线图例编辑工具
- staruml
收费。
- UMLet (http://www.umlet.com/)
基于 Java 的UML IDE,比较轻量简单,界面不是很好看。
- WebSequenceDiagrams(https://www.websequencediagrams.com/)
专门绘制时序图的在线图例编辑器,基于代码语法的,有关键字提示功能,类似PlantUML,部分功能免费。
- Speeder
一个绘制时序图的前端js框架,收费。
- JS Sequence Diagrams
另一个绘制时序图的前端js框架,开源免费,有手绘风格。
- 10 个 Eclipse UML 插件
- Mscgen
类似 PlantUML 的绘图工具,基于代码绘制,非常轻量级,有点简陋。
- graphviz
另一个强大的基于代码的绘图工具,不过PlantUML已经可以集成他的功能了。参考:http://plantuml.com/dot
- JUMLY
一个比较不错的前端js UML框架。样式也比较美观。
- blockdiag
一个小众基于代码的UML绘制工具,功能比较少。
- yUML
可以通过URL参数绘制UML图形。收费。
说点什么