PlantUML:用文本画UML图的开源工具

介绍

PlantUML 是一个开源 文本驱动的绘图工具,用于快速创建 UML(统一建模语言)图形,无需拖拽画布。如类图、时序图、用例图、活动图等。

通过 简单的文本描述语言 定义图形,并将其转换为高质量的图像格式(如 PNG 或 SVG)

底层依赖:Graphviz

在线使用网址

https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa700003

开源网址

https://github.com/plantuml/plantuml

支持导出格式

PNG、SVG、PDF、Markdown 可识别图、ASCII 文本图等。

文件后缀

保存 PlantUML 的文件后缀:.puml / .plantuml

优势

  1. 纯文本编写
    代码即是图纸,可存入 Git,方便对比变更、协作;Visio、Draw.io 文件是二进制,难以 diff。
  2. 语法简单易学
    不需要学习复杂绘图操作,专注表达业务逻辑。
  3. 支持超多图表类型
    时序图、类图、用例图、活动图、流程图、架构图、ER数据库图、甘特图、网络图等。
  4. 生态强大
    VS Code、IDEA、Typora、Obsidian、GitBook、MkDocs 全部支持集成;可命令行批量生成图片。

支持的常用图(UML + 非UML)

UML 标准图

  • 时序图(Sequence Diagram)⭐开发最常用
  • 类图(Class Diagram)后端设计必备
  • 用例图(Use Case)
  • 活动图(Activity Diagram,流程图)
  • 状态图(State Diagram)
  • 组件图、部署图

扩展图表

  • ER 实体关系图(数据库表结构)
  • 架构图(C4架构图)
  • 甘特图、思维导图
  • 网络图、流程图、看板

例子

下面是时序图:

@startuml
用户 -> 前端: 发起请求
前端 -> 后端: HTTP调用
后端 --> 前端: 返回数据
前端 --> 用户: 展示页面
@enduml

把这段代码交给 PlantUML 引擎,直接生成时序图。

运行方式

  1. 在线预览(快速试用)
    官网在线编辑器:https://www.plantuml.com/plantuml/
  2. 编辑器插件
    • VS Code:PlantUML 插件(需要 Graphviz)
    • IntelliJ IDEA:PlantUML Integration
    • Typora / Obsidian:原生支持 PlantUML 代码块渲染
  3. 命令行
    通过 plantuml.jar 批量解析 .puml 文件自动导出图片

    ⚠️ 依赖:PlantUML 底层依赖 Graphviz(dot),本地环境必须安装 Graphviz,否则无法渲染。

典型适用场景

  1. 软件架构设计、接口时序流程图
  2. 数据库ER模型设计
  3. 技术文档、接口文档嵌入示意图
  4. 自动化文档流水线(CI自动生成架构图)
  5. 团队规范统一绘图风格,避免每个人画图样式混乱

优缺点

✅ 优点:

  • 文本形式,适合代码仓库管理
  • 自动化、可批量生成
  • 跨平台、编辑器通用
  • 语法标准化,团队统一图纸风格

❌ 缺点:

  • 高度自定义美观样式学习成本较高
  • 不适合复杂自由布局、大量不规则图形
  • 本地部署需要额外安装 Graphviz

原文出处:/show_1GW3kg0wFs09.html