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
英文地址,請注明出處:http://en.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;它常用于定義接口、組件屬性或函數參…