首页 > 其他分享 >Tools - 通过PlantUML进行文本方式绘图

Tools - 通过PlantUML进行文本方式绘图

时间:2024-07-24 14:40:40浏览次数:6  
标签:plantuml com Server1 Server2 PlantUML 绘图 https Tools

PlantUML简介

PlantUML是支持多系统多编辑器的一个以文字方式绘图的工具,可以根据文字表述直接生成图,支持时序图、流程图、用例图、状态图、组件图等。

  • 能够以插件形式被Idea、VS Code、PyCharm等编辑工具所集成
  • 需先安装Java和开源图片渲染库Graphviz,否则无法正常显示
  • 需要先熟悉对应的绘图语法

相关链接

示例 - 通过VS Code

在VS Code编辑器中使用PlantUML插件进行文本绘图。
可以在markdown格式文件中编写内容
支持预览功能,如果编写过程中出现语法错误,在预览界面会给出具体提示。

输出文件
1.在命令面板(Ctrl+Shift+P)中输入plant,然后在提示下拉栏中选择“PlantUML:导出当前文件图表”
2.根据提示选择文件格式
3.完成后,会提示“导出图表成功”,查看图表即可。

@startuml

title This is a sample!
/' left to right direction
第二行注释
'/

'######## Application Server ########'
frame System {
node Server1 [
    Server1 
    IP: 1.1.1.1
    Port: 1111
    ]
node Server2 [
    Server2 
    IP: 2.2.2.2
    Port: 2222
    ] 
}

'######## MiddleWare ########'
frame MiddleWare {
component Nacos [
    Nacos
    IP: 7.7.7.7
    Port: 7777
    ]
component Nginx [
    Nginx 
    IP: 8.8.8.8
    Port: 8888
    ]
}

'######## Database ########'
database DB #aliceblue;line:blue;line.bold;text:blue [    /'指定样式'/
    DB 
    IP: 6.6.6.6
    Port: 6666
    ]

'######## Others ########'
storage Storage_1 as "Storage_X"    /'指定别名'/
artifact Artifact_1
cloud Cloud_1
card Card_1
file File_1 #aliceblue;line:blue;line.dotted;text:blue

card C_foo
card C_left
card C_right
card C_up
card C_down

'######## Links ########'
C_foo -left-> C_left    /'指定方位的箭头连接,可以使用left、right、up、down'/
C_foo -right-> C_right
C_foo -up- C_up
C_foo -down- C_down

Server1 --> DB    /'水平方向的箭头连接'/
Server1 --> Nacos
Server1 --> Nginx
Server2 == DB    /'粗连接线'/
Server2 .. Nacos    /'虚连接线'/
Server2 ~~ Nginx    /'点连接线'/

DB -[#orange]-> Server1 
DB -[#blue;thickness=3]-> Server2 : [input text]

Storage_1 ---> Artifact_1 /'长度增加的水平方向连接'/
Storage_1 -> Cloud_1    /'水平方向的箭头短连接'/
Cloud_1 ==> Card_1    /'指定向下方向的粗连接'/
Card_1 <=[#green]=> File_1    /'水平双向的粗连接'/

@enduml

示例 - 通过plantuml.jar

安装配置

# 安装配置Open-JDK
- https://download.java.net/openjdk/jdk8u42/ri/openjdk-8u42-b03-windows-i586-14_jul_2022.zip
- 需配置到系统环境变量path中


# 安装配置 graphviz
- https://graphviz.org/documentation/
- https://graphviz.org/download/
- https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/7.0.5/windows_10_cmake_Release_graphviz-install-7.0.5-win64.exe

安装过程中,务必记得勾选“将graphviz加入环境变量”的选项,安装完成后验证版本
$ dot -V
dot - graphviz version 7.0.5 (20221223.1930)


# 安装配置plantuml
- https://plantuml.com/zh/download
- https://github.com/plantuml/plantuml/releases/download/v1.2022.14/plantuml-1.2022.14.jar
下载后更名为plantuml.jar并放到固定目录中

使用plantuml.jar

# 从命令行运行PlantUML

# 1 - 创建一个文本文件sample.txt,内容如下
@startuml
Alice -> Bob: test
@enduml

# 2 - 在命令行运行如下命令
java -jar plantuml.jar sample.txt

# 3 - 执行命令后会得到一个同名的png格式文件

执行过程

C:\TPS\PlantUML>dir
 驱动器 C 中的卷是 WinOS
 卷的序列号是 046F-EDEC

 C:\TPS\PlantUML 的目录

2023/01/03  23:21    <DIR>          .
2023/01/03  23:21    <DIR>          ..
2023/01/03  22:30        11,349,479 plantuml.jar
2023/01/03  23:06               939 sample.txt
               2 个文件     11,350,418 字节
               2 个目录 187,064,942,592 可用字节

C:\TPS\PlantUML>java -jar plantuml.jar sample.txt

C:\TPS\PlantUML>dir
 驱动器 C 中的卷是 WinOS
 卷的序列号是 046F-EDEC

 C:\TPS\PlantUML 的目录

2023/01/03  23:30    <DIR>          .
2023/01/03  23:30    <DIR>          ..
2023/01/03  22:30        11,349,479 plantuml.jar
2023/01/03  23:30            26,234 sample.png
2023/01/03  23:06               939 sample.txt
               3 个文件     11,376,652 字节
               2 个目录 187,064,913,920 可用字节

C:\TPS\PlantUML>

Sample文本文件内容

@startuml

title This is a sample!

left to right direction

frame System {
node Server1 [
    Server1 
    IP: 1.1.1.1
    Port: 1111
    ]
node Server2 [
    Server2 
    IP: 2.2.2.2
    Port: 2222
    ] 
}

frame MiddleWare {
component Nacos [
    Nacos
    IP: 7.7.7.7
    Port: 7777
    ]
component Nginx [
    Nginx 
    IP: 8.8.8.8
    Port: 8888
    ]
}

database DB1 #aliceblue;line:blue;line.bold;text:blue [
    DB 
    IP: 6.6.6.6
    Port: 6666
    ]

storage Foo1 as "Storage-1"
artifact Foo2 as "Artifact-1"
cloud Foo3 as "Cloud-1"
card Card_1
file File_1 #aliceblue;line:blue;line.dotted;text:blue

Server1 --> DB1
Server1 --> Nacos
Server1 --> Nginx

Server2 == DB1
Server2 .. Nacos
Server2 ~~ Nginx

DB1 -[#orange]-> Server1 
DB1 -[#blue;thickness=3]-> Server2 : [input text]

Foo1 -[#green]- Foo2
Foo2 -> Foo3
Foo3 => Card_1
Card_1 <=[#green]=> File_1

@enduml

绘图结果

标签:plantuml,com,Server1,Server2,PlantUML,绘图,https,Tools
From: https://www.cnblogs.com/anliven/p/18320861

相关文章

  • Selenium 是否可以检测发送到 devtools 网络选项卡中站点的特定请求?
    我在Chrome和Firefox上使用python上的Selenium。我希望selenium等待,直到将特定请求发送到可以位于devtools的网络选项卡中的站点。例如名称为“index-24c3e2ca18.js”且请求URL为“https://www.wikipedia.org/portal/wikipedia.org/assets/js/index-24c3e2ca18.js”......
  • security-tools 渗透测试工具列表
     简介securitytools包括了很多渗透测试常用的工具,包括以下方面:安卓,暴力破解,云安全,CMS,内容发现,CORS,CRLF,CSRF,反序列化,数字取证,扩展名,Git,GraphQL,IDOR(间接对象引用攻击),注入,JS侦察,JWT(JSONWebToken),杂项,网络,开放重定向,开源情报收......
  • 使用 codegen 在现有 devtools 会话中的 playwright 中进行录制
    我已经用Python安装了playwright。我有一个可以打开远程调试的应用程序。使用chromium.connect_over_cdp(websocket_url),我能够连接到相同的内容并工作。但是我需要相同的记录选项,即剧作家代码生成器。在这种情况下如何实现这一点?很遗憾,Playwright本身并不能让......
  • VMware Tools 12.4.5 下载 - 客户机操作系统无缝交互必备组件
    VMwareTools12.4.5下载-客户机操作系统无缝交互必备组件VMware虚拟机必备组件(驱动和交互式服务)请访问原文链接:https://sysin.org/blog/vmware-tools-12/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareTools是一套安装在虚拟机的操作系统中的实用程......
  • 从 OR-Tools 设置 CP-SAT 求解器的 IntVar 值
    我目前正在使用googleOR-toolsCP-SAT求解器来解决规划问题。我使用IntVars作为日期的表示。所有这些IntVar都在字典中。我有一些可以正常工作的约束,但我想强制求解器使大约2/3的Intvars低于400。我尝试使用BoolVars解决问题,但没有成功,我运行了出于如何将2/3......
  • 【GeoJSON】Java 使用 GeoTools 将 SHP 文件转成 GeoJSON 文件
    文章目录引言Mavensettings.xml配置配置项目中的pom.xml引入GeoToolsJar包使用引言在使用GeoTools时,我们没办法直接使用Maven中央库的GeoTools,所以就需要我们配置一下关于GeoTools自己的镜像,所以我们才需要以下这几个步骤:1、检查一下自己本机maven的......
  • 在绘图破折号布局中使用 HTML 标签嵌入变量
    我有一个变量,其中一些文本已经包含HTML标签-例如换行符/粗体/等。我根据某些条件从数据框中提取此变量。我想在我的Dash布局中使用它。myData=df["HTML_TEXT_COLUMN].values[0]例如,您可以考虑myData变量具有以下文本-line1<br>line2<br......
  • 心形,五角星,五星红旗----MATLAB绘图
    目录一、心形绘图1.数学代码2.代码运行结果二、五角星绘图1.数学代码2.代码运行结果三、五星红旗绘图1.数学代码2.代码运行结果        要绘制函数的图形,需要执行以下步骤:1.通过指定变量x的值范围来定义x,为此函数将绘制出来;2.定义函数,y=f(x);3.调用pl......
  • 使用 Python 绘图
    我有一个.txt文件,从中找到有序对,然后使用numpy和matplotlib绘制图形。例如,这些是我的有序对:[[(4.0,0),(0,6.0)],[(6.0,0),(0,3.0)]](每个子列表代表最终图形中的一条线)图形如下所示:但我想找到两条线之间的交点。如果有更多的线,我怎样才能找到它们......
  • 有人可以解决我的代码中的问题吗?而且我无法在我的电脑上安装 nsetools。如何在 python
    从nsetools导入Nseimportpandasaspdnse=Nse()all_stock_codes=nse.get_stock_codes()companies_with_low_pe=[]对于all_stock_codes中的代码:如果代码=='符号':继续尝试:stock_quote=nse.get_quote(代码)pe_ratio=stock_quote.get('priceT......