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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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] 开始对图像进行…