plantuml.jar与本地PlantUML服务器的区别及数据安全咨询
两类PlantUML使用方式核心差异
plantuml.jar 本地工具包
- 本质是打包了全部PlantUML渲染逻辑的独立Java可执行程序,无常驻后台进程
- 运行仅依赖本地Java运行环境,不需要额外部署服务
- 支持直接批量处理本地文件,单条命令即可完成目录下所有
.puml文件的格式转换,支持png、svg、pdf等多种输出格式 - 典型调用命令:
单文件转png:java -jar plantuml.jar example.puml
批量转换当前目录所有puml为png:java -jar plantuml.jar *.puml
本地部署的PlantUML服务(默认8080端口)
- 本质是封装了PlantUML渲染能力的常驻Web服务,通过HTTP协议对外提供渲染接口
- 启动后持续在后台运行,不需要每次渲染都重新加载程序资源,响应速度更快
- 适合多端共享调用场景:比如团队内部共用渲染服务、CI/CD流水线集成、编辑器插件对接等,调用方不需要单独配置Java环境、存储jar包
- 你之前使用的curl管道传参输出图片的方式,就是这类服务的标准调用方法,渲染逻辑全程在你本地部署的服务实例内完成
plantuml.jar 数据安全问题说明
默认配置下从官方渠道获取的plantuml.jar运行时,不会将你的本地puml文件内容、设备数据上传至PlantUML公共服务器,所有UML渲染计算全程在本地设备完成
- 仅当你主动在puml代码中使用了需要联网的特性时,才会产生对应的外部网络请求,比如插入公网URL的图片、调用在线扩展组件等,标准UML语法(类图、时序图、流程图、用例图等)的渲染完全不需要联网
- 如果需要彻底阻断所有可能的外部联网请求,可以在执行命令时添加离线模式参数,示例:
java -Dplantuml.offline=true -jar plantuml.jar *.puml
添加该参数后程序会完全禁止所有外部网络请求,即使设备断网也能正常完成所有标准语法的渲染。
如果是生成给README引用的图片,建议优先输出svg矢量格式,在不同分辨率屏幕下都不会模糊,批量生成svg的命令为java -jar plantuml.jar -tsvg *.puml,生成的文件和源puml文件同名,直接在Markdown里按相对路径引用即可。
内容的提问来源于stack exchange,提问作者Rafael Ferreira
相关产品推荐
相关产品推荐

