PlantUML 是一种基于文本的 UML 图形生成工具,它允许开发者通过简单的文本描述来生成各种类型的 UML 图。PlantUML 支持多种 UML 图形类型,例如类图、序列图、状态图等。在 Java 开发中,PlantUML 可以被用来生成清晰的类图和序列图,帮助开发者更好地理解系统结构和交互。
本文将介绍如何在 Java 项目中集成 PlantUML,并通过代码示例展示如何生成 UML 图。
PlantUML 是一个开源工具,使用纯文本格式定义 UML 图形。它的核心思想是:通过编写简单的文本脚本,自动将这些脚本转换为图形化的 UML 图。PlantUML 使用 Graphviz 作为底层渲染引擎,因此需要确保系统中安装了 Graphviz。
安装 Graphviz
PlantUML 需要 Graphviz 来渲染图形。可以从 Graphviz 官方网站 下载并安装。
添加依赖
如果你使用 Maven 或 Gradle 构建项目,可以通过以下方式添加 PlantUML 的依赖。
<dependency>
<groupId>net.sourceforge.plantuml</groupId>
<artifactId>plantuml</artifactId>
<version>1.2023.7</version> <!-- 请根据最新版本调整 -->
</dependency>
implementation 'net.sourceforge.plantuml:plantuml:1.2023.7' // 请根据最新版本调整
System.setProperty("GRAPHVIZ_DOT", "C:/Program Files/Graphviz/bin/dot.exe"); // 根据你的安装路径调整
下面是一个简单的类图脚本:
@startuml
class Car {
- int speed
- String model
+ void accelerate()
+ void brake()
}
class Driver {
- String name
+ void drive(Car car)
}
Driver --> Car : drives
@enduml
以下代码展示了如何在 Java 中生成上述类图:
import net.sourceforge.plantuml.SourceStringReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class PlantUMLExample {
public static void main(String[] args) throws Exception {
// 设置 Graphviz 路径
System.setProperty("GRAPHVIZ_DOT", "C:/Program Files/Graphviz/bin/dot.exe");
// 定义 PlantUML 脚本
String umlScript = "@startuml\n" +
"class Car {\n" +
" - int speed\n" +
" - String model\n" +
" + void accelerate()\n" +
" + void brake()\n" +
"}\n" +
"\n" +
"class Driver {\n" +
" - String name\n" +
" + void drive(Car car)\n" +
"}\n" +
"\n" +
"Driver --> Car : drives\n" +
"@enduml";
// 创建输出文件
File outputFile = new File("output.png");
try (OutputStream outputStream = new FileOutputStream(outputFile)) {
// 使用 SourceStringReader 解析并生成图像
new SourceStringReader(umlScript).generateImage(outputStream);
}
System.out.println("类图已生成:" + outputFile.getAbsolutePath());
}
}
运行上述代码后,将在当前目录下生成 output.png
文件,内容为上述类图。
以下是一个简单的序列图脚本:
@startuml
participant User
participant System
User -> System: login(username, password)
System --> User: success or failure
@enduml
可以复用上述代码中的逻辑,只需替换 umlScript
的内容即可:
String umlScript = "@startuml\n" +
"participant User\n" +
"participant System\n" +
"\n" +
"User -> System: login(username, password)\n" +
"System --> User: success or failure\n" +
"@enduml";
PlantUML 支持以下类型的 UML 图:
许多现代 IDE(如 IntelliJ IDEA 和 Eclipse)都提供了 PlantUML 插件,可以直接在编辑器中预览 UML 图。这大大提高了开发效率。
如果你不想在本地安装 Graphviz,也可以使用在线工具(如 PlantText)直接生成 UML 图。
通过本文的介绍,我们学习了如何在 Java 项目中集成 PlantUML,并通过代码示例展示了如何生成类图和序列图。PlantUML 是一个强大的工具,可以帮助开发者快速生成高质量的 UML 图形,从而提升文档编写和团队协作的效率。