plantuml + graphviz配置

最近希望使用plantuml来绘制流程图,以下记录配置过程;

1.安装plantumlgraphviz

1.1 下载

  1. plantuml,jar包,需要java支持
  2. graphviz,可7z直接提取,绿色可执行文件。

  注:本机安装了anaconda3graphviz可以使用conda安装,但是anaconda3安装版本为2.38版,这里替换为上述链接下载的版本(2.44.1),附conda安装命令:

1
conda install python-graphviz graphviz --copy -y

1.2 配置环境变量

  plantuml使用java编写,需要java运行时支持,环境变量配置核心为配置java路径。graphviz同样需要添加环境变量。以下创建批处理完成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off

rem 如果出现"Error: dot generates empty file. Check you dot installation."错误
rem 执行dot -c 命令,见plantuml说明faq

rem 配置graphviz和java路径
set GRAPHVIZ_DIR=D:\Dev\Anaconda3\Library\bin\graphviz
set JAVA_DIR=D:\Dev\java\jre

rem 配置java环境变量
set JAVA_HOME=%JAVA_DIR%
set CLASSPATH=%JAVA_DIR%;%JAVA_HOME%\lib
set Path=%Path%;%GRAPHVIZ_DIR%;%JAVA_DIR%\bin

:java -version

java -jar plantuml.jar -version | findstr version
java -jar plantuml.jar -charset utf-8 %1

@echo on

1.3 测试

  示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@startuml

' modify from https://real-world-plantuml.com/umls/4620670503747584

' 设置默认字体为 方正细黑
skinparam defaultFontName stxihei
' 输出图片分辨率为150
skinparam dpi 150
' 设置背景颜色
skinparam backgroundColor #EEEBDC

title 示例

actor 使用者
participant " 头等舱" as A
participant " 第二类" as B
participant " 最后一堂课" as 别的东西
使用者-> A: 完成这项工作
activate A
A -> B: 创建请求
activate B
B -> 别的东西: 创建请求
activate 别的东西
别的东西--> B: 这项工作完成
destroy 别的东西
B --> A: 请求创建
deactivate B
A --> 使用者: 做完
deactivate A

@enduml
  将上述代码保存为test.puml,执行命令:
1
plantuml.bat test.puml
结果如图1所示:

参考: 1. https://plantuml.com/zh/command-line 2. https://real-world-plantuml.com