Docker 搭建 PlantUML 服務:高效生成 UML 圖的最佳實踐

PlantUML 是一款開源的 UML 圖形生成工具,它支持生成類圖、時序圖、用例圖、活動圖等多種類型的 UML 圖,廣泛應用于軟件設計、文檔編寫以及團隊溝通中。通過 Docker 安裝 PlantUML,開發者可以快速搭建環境,輕松生成 UML 圖,而無需進行復雜的配置。本文將詳細介紹如何使用 Docker 搭建 PlantUML 服務(不太喜歡再本機中安裝,但是文件體積也很小),并結合實際的圖示展示如何使用 PlantUML。

1. 使用 PlantUML 的好處

1.1 簡化設計與文檔化

通過 PlantUML,開發者可以以一種簡單、清晰的方式表達復雜的設計。它可以通過文本生成 UML 圖,不僅可以節省繪圖時間,還能避免圖示過時的風險,確保文檔的更新與代碼保持同步。

1.2 支持多種圖示類型

PlantUML 支持的 UML 圖類型包括類圖、時序圖、用例圖、活動圖等。此外,PlantUML 還支持生成數據庫關系圖、組件圖、狀態圖等,功能非常全面。

1.3 高度自動化與靈活性

由于 PlantUML 使用的是基于文本的語言,你可以通過編寫腳本與代碼庫自動生成 UML 圖,這為持續集成和自動化文檔生成提供了很大的便利。

1.4 跨平臺支持

PlantUML 可以在多個平臺上運行(包括 Windows、macOS 和 Linux),并且可以與多種開發工具和 IDE(如 IntelliJ IDEA、VS Code 等)集成。

1.5 支持協作和版本控制

PlantUML 生成的 UML 圖以文本文件存儲,便于通過版本控制系統(如 Git)進行管理。團隊成員可以在版本控制系統中協作修改圖示,確保最新版本始終可用。

2. 使用 Docker 安裝 PlantUML

通過 Docker 安裝 PlantUML 是一種非常簡便的方式,無需擔心操作系統環境配置和依賴問題。下面是通過 Docker 安裝并運行 PlantUML 服務的步驟:

2.1 安裝 Docker

首先,確保系統已經安裝了 Docker。如果沒有安裝 Docker,可以訪問 Docker 官方文檔 進行安裝。

2.2 拉取 PlantUML 鏡像

打開終端,運行以下命令來拉取 PlantUML 鏡像:

docker pull plantuml/plantuml-server:jetty


該命令會從 Docker Hub 拉取最新的 PlantUML 鏡像。

2.3 啟動 PlantUML 服務

拉取完成后,你可以通過以下命令啟動 PlantUML 服務:

docker run -d -p 8080:8080 plantuml/plantuml-server:jetty

  • 該命令執行以下操作:
    • -d?: * 以分離模式運行容器。
    • -p 8080:8080?: * 將容器的 8080 端口映射到主機上的 8080 端口

運行該命令后,你可以通過瀏覽器訪問 http://localhost:8080,并開始使用 PlantUML。

2.4 訪問 Web 服務

在瀏覽器中打開 http://localhost:8080,你會看到 PlantUML 的 Web 界面。

在左側的編輯框中輸入 PlantUML 代碼,右側將實時生成對應的 UML 圖。以下是一個簡單的示例:


點擊生成圖形,你將看到類似于上的時序圖:

3. 使用其他方式安裝 PlantUML

除了使用 Docker 安裝 PlantUML 外,還有其他多種安裝方式。

3.1 使用 Java 安裝 PlantUML

PlantUML 是用 Java 編寫的,可以通過運行 JAR 文件來使用。以下是使用 Java 安裝和運行 PlantUML 的步驟:

  1. 安裝 Java:首先,確保系統安裝了 Java 運行時環境(JRE)。
  2. 下載 PlantUML JAR 文件:從 PlantUML 官網 下載最新的 JAR 文件。
  3. 運行 PlantUML:在終端中執行以下命令來啟動 PlantUML:
java -jar plantuml.jar
3.2 使用 Homebrew(適用于 macOS 和 Linux)

如果你使用 macOS 或 Linux,可以使用 Homebrew 包管理器安裝 PlantUML:

  1. 安裝 Homebrew:如果還沒有安裝 Homebrew,可以通過以下命令進行安裝:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安裝 PlantUML
brew install plantuml
3.3 使用 IDE 插件

你還可以在 IDE(如 IntelliJ IDEA、VS Code、Eclipse)中安裝 PlantUML 插件。這使得你可以直接在 IDE 中編寫和查看 UML 圖,極大地方便了開發和設計工作。

4. 示例:使用 PlantUML 生成 UML 圖

下面是一個生成購物系統用例圖的示例 PlantUML 代碼:

@startuml
left to right direction
actor User as "用戶"
actor Admin as "管理員"
rectangle "用戶管理" {User -- (用戶注冊)User -- (用戶登錄/注銷)User -- (忘記密碼/重置密碼)User -- (更新個人資料)
}rectangle "商品管理" {User -- (商品瀏覽和排序)User -- (查看商品詳情)User -- (商品查詢)
}rectangle "購物車管理" {User -- (清空購物車)User -- (移除購物車中的商品)User -- (修改購物車中的商品數量)User -- (添加商品到購物車)
}rectangle "訂單管理" {User -- (創建訂單)User -- (訂單支付)User -- (取消訂單)User -- (修改訂單)
}rectangle "支付管理" {User -- (支付狀態查詢)User -- (支付方式選擇)
}rectangle "通知功能" {User -- (發貨通知)User -- (支付成功通知)User -- (訂單確認通知)
}
@enduml

生成的 UML 圖如下所示:

5. 總結

通過 Docker 部署 PlantUML 是一種快速、簡便的方法,免去復雜配置。只需幾條命令即可在本地或云服務器上搭建 PlantUML 服務,直接在瀏覽器中生成 UML 圖。此外,PlantUML 還提供了多種安裝方式,開發者可以根據需求選擇合適的方式。通過本文的介紹,你可以輕松使用 PlantUML 來優化軟件設計流程,提高團隊協作效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899017.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899017.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899017.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簡鹿辦公匯總快速打開 Windows 資源管理器的幾種方式

無論你是剛開始使用電腦的新手,還是已經有一定經驗的用戶,了解如何在 Windows 系統中打開資源管理器都是一個非常基本且重要的技能。Windows 資源管理器(現在稱為“文件資源管理器”)是幫助你瀏覽、查找和管理計算機上所有文件的主…

嵌入式 python 安裝

下載嵌入式Python后解壓 https://www.python.org/ftp/python/3.12.9/python-3.12.9-embed-amd64.zip cd python-3.12.9-embed-amd64 安裝 pip .\python.exe .\get-pip.py 放開限制 嵌入式 Python 為了減少體積,默認會有一些限制。你需要編輯 python312._pth 文…

DeepSeek底層揭秘——GEMM

目錄 1. 什么是 GEMM? (1) 定義 (2) 核心目標 2. 核心功能 3. 對比傳統通用矩陣乘法庫 4. 技術要素 (1) 硬件感知優化 (2) 自動調優 (3) 高效內存管理 (4) 混合精度計算 5. 難點挑戰(含解決方案) 6. 技術路徑 7. 具體技術實現 8…

DNA-PAINT

參考: 【科研教程】NUPACK網頁版使用教程 https://www.bilibili.com/video/BV1G94y1W7mN/NUPACK新版網頁版教程-模擬部分 https://zhuanlan.zhihu.com/p/678730568NUPACK 4.0 User Guide https://docs.nupack.org/NUPACK網頁版使用指南 https://zhuanlan.zhihu.com/p/55024017…

小程序內表格合并功能實現—行合并

功能介紹:支付寶小程序手寫表格實現行內合并,依據動態數據自動計算每次需求合并的值,本次記錄行內合并,如果列內合并,同理即可實現 前端技術:grid布局 display:grid 先看實現效果: axml&…

計算機視覺cv2入門之角點檢測

角點是指圖像中兩條邊緣線的交點,這些交點通常代表了圖像中的重要特征。在計算機視覺中,角點檢測是一種關鍵的技術,它可以幫助我們從圖像中提取出這些重要的特征點,進而用于圖像匹配、物體識別、圖像拼接等多種應用。 角點檢測示例…

抽獎的誘惑系統注冊與登錄功能測試報告

目錄 一:項目背景 二:項目功能 (1) 注冊功能 (2) 登錄功能 電話 密碼登錄 電話 短信登錄 三:設計測試用例 四:功能測試 五:自動化測試代碼 七:遺留風…

【多媒體交互】Unity Kinect實現UI控件的點擊

在Unity中,通過Kinect實現UI控件的點擊功能,主要涉及手部追蹤、坐標映射和手勢檢測三個核心環節。 實現步驟 初始化Kinect與關節追蹤 使用KinectManager獲取用戶ID和手部關節點(如JointType.HandLeft)的坐標。 long userId _…

【藍橋杯】每日練習 Day12 貢獻法

前言 今天給大家帶來兩道貢獻法的問題,先來講一下什么是貢獻法。 貢獻法,與其說是一種算法,不如說是一種數學方法,是一種思維方式。 先來給大家舉個例子,假設現在有個問題,需要你在一個只有小寫字母的字…

go test相關命令

在 Go 項目中,go test 可以用于運行整個工程中的測試文件。以下是幾種方式: 1. 運行當前模塊或整個工程的測試 go test ./..../... 表示遞歸測試所有子目錄中的測試文件(*_test.go)。適用于 Go Modules 或 GOPATH 結構的項目。 …

RocketMQ 詳細知識點總結

RocketMQ 詳細知識點總結 1. 核心概念 1.1 基礎組件 Producer(生產者) 消息的發送者支持同步、異步和單向發送方式提供事務消息功能Consumer(消費者) 消息的接收者支持Push和Pull兩種消費模式支持集群消費和廣播消費NameServer(命名服務) 路由注冊中心無狀態節點,可集…

文字也能生成視頻?【藍耘實踐】:通義萬相2.1文生視頻

文字也能生成視頻?【藍耘實踐】:通義萬相2.1文生視頻 上次我們已經介紹了關于在藍耘云平臺實踐通義萬相的基本玩法,這次將介紹進階玩法,也就是使用文字來生成視頻。 首先我們還是先注冊或者登錄藍耘云平臺。 通過藍耘平臺進入流…

藍橋杯 跑步計劃

問題描述 小藍計劃在某天的日期中出現 1 時跑 5 千米,否則只跑 1 千米。注意:日期中出現 1 不僅指年月日,也指星期。 請問按照小藍的計劃,2023 年小藍總共會跑步鍛煉多少千米? 例如: 5 月 1 日1 月 13 …

K8S集群新增和刪除Node節點(K8s Cluster Adds and Removes Node Nodes)

實戰:在已有K8S集群如何新增和刪除Node節點 在Kubernetes (K8S) 集群中,Node節點是集群中的工作節點,它們運行著容器的實際實例。管理K8S集群中的Node節點,包括新增和刪除節點,是一個常見且重要的操作,可以…

ASP.NET Web的 Razor Pages應用,配置熱重載,解決.NET Core MVC 頁面在更改后不刷新

Razor Pages應用,修改頁面查看修改效果,如果沒有熱重載,改一句話跑一次,這個活就沒法干了。 1、VS2022中的NuGet中安裝RuntimeCompilation Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 需要配套你的.net sdk版本&#x…

死亡并不是走出生命 而是走出時間

目錄 第一章 倒春寒 第二章 悖論與共生 第三章 坍縮與永恒 第四章 在時差里相愛 終章 你從未離開 第一章 倒春寒 2022年春天的揚州東關街,青衣在文昌閣古槐下調試著「時間膠囊」算法。這個能將人類記憶轉化為數據流的程序,是他用三年時間對抗漸凍…

網絡安全基礎:五類安全服務、八種安全機制與OSI七層模型的全面解析

目錄 引言 五類安全服務 2.1 認證服務 2.2 訪問控制 2.3 數據保密性 2.4 數據完整性 2.5 不可否認性 八種安全機制 3.1 加密機制 3.2 數字簽名 3.3 訪問控制機制 3.4 數據完整性機制 3.5 認證交換機制 3.6 流量填充機制 3.7 路由控制機制 3.8 公證機制 OSI七層…

PhotoShop學習02

1.添加文本 這個工具欄是文字工具欄,快捷鍵是T。選擇之后鼠標會變成一個豎杠外貌,我們可以借此在圖片中寫入文字。 選擇后,上方的工具欄會變為專門調整文字工具 這個框點擊旁邊的小箭頭可以選擇我們我們電腦系統自帶的字體,同時可…

黃土高原風蝕區解析多源數據融合與機器學習增強路徑-RWEQ+集成技術在風蝕模數估算中的全流程增強策略—從數據融合到模型耦合的精細化操作指南

土壤風蝕模數估算長期面臨?模型參數不確定性高?、?空間異質性表達不足?兩大技術瓶頸。RWEQ集成技術框架?,通過耦合地理時空分析、機器學習算法與物理過程模型,實現風蝕模數估算精度的系統性提升。以黃土高原典型風蝕區(38N-40N&#xff…

BFS解決FloodFill算法

1.圖像渲染 733. 圖像渲染 - 力扣(LeetCode) 1.題目解析 有一幅以 m x n 的二維整數數組表示的圖畫 image ,其中 image[i][j] 表示該圖畫的像素值大小。你也被給予三個整數 sr , sc 和 color 。你應該從像素 image[sr][sc] 開始對圖像進行…