PlantUML 基础使用技术文档

目录

摘要

1. 什么是 PlantUML

2. 安装与环境配置

2.1 本地使用

2.2 在线使用

3. 基本语法

3.1 示例:系统架构图

3.2 常用元素

4. 渲染方式

4.1 VSCode

4.2 在线渲染

4.3 生成图片

5. 推荐实践

6. 常见图类型

7. 进阶功能

8. 典型应用场景


摘要

PlantUML 是一款基于文本的图形绘制工具,支持用简单、直观的语法绘制架构图、流程图、用例图等常见技术图形。它支持本地渲染、集成开发环境(IDE)插件、以及在线渲染服务,广泛应用于技术文档、设计评审、DevOps CI/CD 等场景。本手册介绍 PlantUML 的基本使用方法、开发环境配置、常见图形语法和推荐实践,适用于开发、测试、运维、产品等岗位。


1. 什么是 PlantUML

  • 基于文本的图形绘制工具;

  • 支持 架构图、流程图、状态图、部署图、类图、时序图等

  • 语法简单,适合版本管理、多人协作。


2. 安装与环境配置

2.1 本地使用

工具安装方式
VSCode安装插件:PlantUML、需要 Java 运行环境
IntelliJ IDEA安装 PlantUML Integration 插件
Typora / Obsidian内置或插件支持直接渲染
命令行安装 Graphviz + Java,使用 plantuml.jar 渲染

2.2 在线使用

  • 官网:https://www.plantuml.com/plantuml

  • API 服务:Kroki!

  • GitLab / GitHub Pages:通过 CI 直接生成


3. 基本语法

3.1 示例:系统架构图

@startuml
actor 用户 as Userrectangle "管理页面" as Astro {[登录页面][用户管理][设备管理]
}rectangle "核心模块" as Core {[权限管理][业务逻辑]
}database "物联网平台" as IoTDAUser --> Astro : 登录 / 操作
Astro --> Core : API 调用
Core --> IoTDA : 获取设备数据
@enduml

3.2 常用元素

元素类型语法示例
角色actor 用户 as User
模块rectangle "模块名称" as Module
数据库database "名称" as DB
箭头A --> B : 调用 / 传输
分组package "模块组" ... end package

4. 渲染方式

4.1 VSCode

  • 安装 “PlantUML” 插件

  • 打开 .puml 文件,右键选择 "Preview Current Diagram"

4.2 在线渲染

  • 复制完整代码到 PlantUML 官网

  • 点击 “Refresh” 渲染图形

4.3 生成图片

  • 本地命令行运行:

    java -jar plantuml.jar diagram.puml
    
  • 可输出 PNG / SVG / PDF


5. 推荐实践

场景推荐做法
版本管理.puml 文件纳入 Git 版本管理
多人协作使用文本形式,便于代码评审
自动文档生成配合 CI 工具生成 PNG / HTML 文档
图形复杂度控制每张图尽量不超过 20 个模块

6. 常见图类型

图类型关键语法
架构图rectangledatabase
用例图actorusecase
流程图startifrepeat
时序图participant->>
状态图state
类图classinterface
部署图nodeartifact


7. 进阶功能

  • 样式优化

    skinparam backgroundColor #F5F5F5
    skinparam rectangle {BackgroundColor #FFFFFFBorderColor #999999
    }
    
  • 动态引用:支持包含外部文件 !include

  • Kroki API 渲染:无需本地安装,直接通过 REST API 渲染图片


8. 典型应用场景

  • 技术架构文档

  • 产品需求说明

  • API 调用流程

  • DevOps 持续集成文档

  • 团队技术分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91023.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Notification 通过增加addAction 跳转回Service重新执行逻辑

1.场景描述在App内升级过程中,apk下载过程中网络波动导致连接超时,下载失败后Service生命周期结束。前台通知也被清除。2.解决思路在通知栏中增加重试按钮重启下载服务。3.代码NotificationManager mNotificationManager (NotificationManager) getSy…

带货视频评论的用户洞察 科大讯飞AI算法赛 Datawhale AI夏令营

赛题 2025 iFLYTEK AI开发者大赛https://challenge.xfyun.cn/topic/info?typevideo-comment-insight 一、赛事背景 在电商直播爆发式增长的数字化浪潮下,短视频平台积累了海量带货视频及用户互动数据。这些数据不仅是消费者对商品体验的直接反馈,更蕴…

JAVA生成PDF(itextpdf)

java生成PDF有多种方式&#xff0c;比如itextpdf、 Apache PDFBox、Flying Saucer (XHTMLRenderer)、 OpenPDF等。今天要介绍的是itextpdf&#xff0c;及在开发过程中处理的问题。1. 引入POM<!--PDF导出POM--><dependency><groupId>com.itextpdf</groupId…

[爬虫知识] 深入理解多进程/多线程/协程的异步逻辑

相关爬虫实战案例&#xff1a;[爬虫实战] 多进程/多线程/协程-异步爬取豆瓣Top250 相关爬虫专栏&#xff1a;JS逆向爬虫实战 爬虫知识点合集 爬虫实战案例 逆向知识点合集 前言&#xff1a; 面对海量的目标数据&#xff0c;传统单线程、同步的爬取方式往往效率低下&#x…

Oracle RAC 11.2.0.4 更新SYSASM和SYS密码

前言 从技术角度看&#xff0c;SYSASM是Oracle 10g R2引入的ASM管理员角色&#xff0c;而SYS是数据库实例的超级用户&#xff0c;SYS账户无法管理ASM磁盘组。SYSASM权限是集群级别的&#xff0c;比如在添加磁盘组时&#xff0c;这个操作会影响所有节点&#xff1b;而SYS用户的权…

Vue》》总结

官网 vue路由的query参数、mixin 混入 vue cli 脚手架之配置代理 VUE SAP、 MPA&#xff0c;&#xff0c;组件开发、VDOM、双向数据绑定 Vue Props 、Mixin 、路由守卫 vue router query参数 Vue props以及其他通信方式, vue响应式 原理 追加响应式数据&#xff0c;数组响应式 …

Nginx 中的负载均衡策略

Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;广泛用于负载均衡场景。它支持多种负载均衡策略&#xff0c;可以帮助你优化资源利用、提高响应速度和增加系统的可用性。以下是 Nginx 中几种常见的负载均衡策略及其配置方法&#xff1a; 1. 轮询&#xff08;Round Rob…

用 Python 将分组文本转为 Excel:以四级词汇为例的实战解析

一、背景引入&#xff1a;从“人工整理”到“自动化处理”的转变 在英语学习过程中&#xff0c;我们经常会接触各种分组整理的词汇表&#xff0c;比如“Group1”对应一组单词及释义&#xff0c;随后是“Group2”、“Group3”等等。如果你下载了一个 .txt 格式的四级词汇表&…

Ffmpeg滤镜

打开设备 添加滤镜 循环录制文件 #include "libavdevice/avdevice.h" #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libavfilter/avfilter.h" #include "libavfilter/buffersink.h" #incl…

HarmonyOS AI辅助编程工具(CodeGenie)UI生成

UI Generator基于BitFun Platform AI能力平台&#xff0c;用于快速生成可编译、可运行的HarmonyOS UI工程&#xff0c;支持基于已有UI布局文件&#xff08;XML&#xff09;&#xff0c;快速生成对应的HarmonyOS UI代码&#xff0c;其中包含HarmonyOS基础工程、页面布局、组件及…

【第三节】ubuntu server配置远程连接

首先在ubuntu server中查看ip&#xff0c;打开虚拟机&#xff0c;输入ip addr show ,这个命令很好记&#xff0c;几乎就是英文自然语言 下面我们准备远程连接工具&#xff0c;我选择的开源的ET&#xff0c;全称是electerm,圈起来的是必须输入的内容&#xff0c;输入完成后点击保…

CCS-MSPM0G3507-7-模块篇-MPU6050的基本使用

前言本篇我们接收对MPU6050的基本使用&#xff0c;获取ID&#xff0c;通过IIC协议获取寄存器的值&#xff0c;至于高级滤波算法&#xff0c;比如卡尔曼滤波&#xff0c;或者上面的&#xff0c;后面再更新基本配置最好选择PA0和PA1&#xff0c;5V开漏然后给上代码MPU6050.c#incl…

spring-ai agent概念

目录agent 概念理解记忆能力工具计划agent 概念理解 agent 智能体&#xff0c;突出智能 大模型的感觉 告诉你怎么做&#xff08;也不一定正确&#xff09;不会帮你做 Agent的感觉 直接准确的帮你做完&#xff08;比如&#xff0c;告诉 AI Agent 帮忙下单一份外卖&#xff0c…

NO.4数据结构数组和矩阵|一维数组|二维数组|对称矩阵|三角矩阵|三对角矩阵|稀疏矩阵

数组的储存 【定义】 数组&#xff1a; 由 n&#xff08;≥1&#xff09; 个相同类型的数据元素构成的有限序列&#xff0c; 是线性表的推广。 一旦被定义&#xff0c; 维数和长度就不可再改变&#xff0c; 一般对其只有元素的存取和修改操作。 一维数组 Arr[a0,…,an−1] Arr[…

如何把Arduino IDE中ESP32程序bin文件通过乐鑫flsah_download_tool工具软件下载到ESP32中

目录前言获取Arduino IDE中ESP32程序bin文件flsah_download_tool工具软件下载程序bin文件到ESP32中总结前言 Arduino IDE丰富的驱动库给ESP32的开发带来了很多便利&#xff0c;当我们下载程序的时候&#xff0c;直选选择好ESP32开发板型号和端口号即可下载程序到开发板中&…

2025XYD Summer Camp 7.11 模考

T1TTT 组询问&#xff0c;每组询问给定 n,mn,mn,m&#xff0c;求 (nm)−1⋅∑i1n∑j1mlcm⁡(i,j) (nm)^{-1}\cdot\sum_{i1}^n\sum_{j1}^m\operatorname{lcm}(i,j) (nm)−1⋅i1∑n​j1∑m​lcm(i,j) 对 109710^971097 取模。 T≤20000T\le 20000T≤20000&#xff0c;n,m≤107n,m…

uniapp 微信小程序点击开始倒计时

一、示例 当点击按钮时就开始倒计时代码 <template><view class"sq_box"><button class"button" click"topay">按钮</button><u-modal v-model"modalShow" :show-cancel-button"true" :content&…

【网络】Linux 内核优化实战 - net.netfilter.nf_conntrack_tcp_timeout_established

目录一、核心概念1. **TCP 连接状态跟踪**2. **参数作用**二、默认值与典型场景1. **默认值**2. **典型场景**三、如何调整该参数1. **查看当前值**2. **临时修改&#xff08;重启后失效&#xff09;**3. **永久修改**四、相关参数与配合优化1. **其他 TCP 状态超时参数**2. **…

鸿蒙app 开发中的Record<string,string>的用法和含义

Record<string, string> 在鸿蒙 App 开发中的用法在 TypeScript 中&#xff0c;Record<string, string> 是一个映射类型&#xff08;Mapped Type&#xff09;&#xff0c;用于描述一个对象的结构。在鸿蒙 App 开发中&#xff0c;它常用于定义接口、组件属性或函数参…