Visual Studio CodeでPlantUMLを使う(MacOS)
概要
VSCodeでPlantUMLを使うまでの手順です。
ローカル環境でPlantUMLによる作図を実行するには、事前にjavaなどのインストールが必要だったため、備忘として残しておきます。
PlantUMLをインストールする
Javaのインストール
PlantUMLはJavaで動くため、Javaをインストールする必要があります。
$ brew install openjdk
...略
If you need to have openjdk first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc
パスを通します。
$ echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
インストール完了です。
$ java --version
openjdk 22.0.2 2024-07-16
OpenJDK Runtime Environment Homebrew (build 22.0.2)
OpenJDK 64-Bit Server VM Homebrew (build 22.0.2, mixed mode, sharing)
OpenJDKって何なのか
OpenJDK(Open Java Development Kit)とは、Java言語でソフトウェア開発を行うのに必要なツールを一つにまとめたオープンソースのパッケージ
普段Javaを使わないので、イメージしづらいですが、C#や他の.NET言語における.NET SDK
のようなものと理解しました。
Graphvizのインストール
Graphviz(Graph Visualization Software)は、グラフやネットワーク構造を図として表現するためのオープンソースのソフトウェアです。PlantUMLでの作図に使用されるため、事前にインストールが必要です。
インストールおよびその確認を行います。
$ brew install graphviz
$ brew list --versions graphviz
graphviz 12.1.0
# dotはGraphvizのコマンド
$ dot -V
dot - graphviz version 12.1.0
PlantUMLのインストール
$ brew install plantuml
$ brew list --version plantuml
plantuml 1.2024.6
PlantUMLの拡張機能をインストールする
VSCodeの拡張機能であるPlantUML(jebbs.plantuml
)をインストールします。
ER図をプレビューする
@startuml sample
entity "User" {
* id : int
* name : string
* email : string
}
entity "Order" {
* id : int
* order_date : date
* user_id : int
}
User ||--o{ Order : "places"
@enduml
上記のような適当なER図を作成して、Preview Current Diagram
してみます。
上手くいきません。どうやら、Javaの設定が適切ではないようです。
VSCodeの設定を変更する
正しくプレビューするためには、VScode側でPlantUMLに関する設定を変更する必要がありました。
設定を開き、Plantuml: Java
にjavaのフルパスを入力します。元々は、フルパスではなく、java
とだけ入力されていました。
# javaのフルパスを調べる
$ which java
/opt/homebrew/opt/openjdk/bin/java
再度ER図をプレビューする
再度プレビューすると、ER図のプレビューが成功しました。
PlantUMLサーバを使う方法もある
ここまでの流れは、ローカル環境でPlantUMLの作図を行う想定です。
しかし、外部サーバであるPlantUMLサーバを使って作図を行うこともできます。この場合、前述のJava、Graphviz、PlantUMLのインストールは不要です。
利用するためには、VSCodeの拡張機能PlantUML(jebbs.plantuml
)をインストールし、設定を下記のように変更するだけです。
"plantuml.render": "PlantUMLServer",
"plantuml.server": "https://www.plantuml.com/plantuml"
ただし、この方法は、外部サーバにデータを送信することになるため、セキュリティリスクがあります。機密情報を扱う際には利用できません。
また、ローカルで実行する方がパフォーマンスは良いでしょうし、オフラインでも使用できるというメリットもあります。
個人的にはローカル環境での実行をオススメします。
最後に
以上です。
PlantUMLは結構表現力高そうなので、色んな図が作れそうです。
どんなことができるのか、また記事にしてみたいなと思います。
Discussion