PlantUMLをUbuntuにインストールする

テキストでUML関連の様々な図が書けるPlantUMLを今回はUbuntuに入れてみたいと思います。

※画像は公式サイトより

必要なソフトウェアのインストール

今回インストールするのはAWSのLightsailに建てたTrustyになります。

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"

JDK/JRE

PlantUMLの動作にはJavaが必要になるため、JREまたはJDKをインストールします。Javaでの開発を行う場合はJDKを、すでにあるソフトウェアを動かすだけならJREを選択します。特にバージョンなどにこだわりが無ければdefault-jdkないしdefault-jreで良いと思います。

aptで一発で入ります。今回はJDKの方にしました。

$ sudo apt-get install default-jdk

1.7.0が入りましたね。

$ java -version
java version "1.7.0_181"
OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.2)
OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)

Graphviz

公式サイトによると、

シーケンス図とアクティビティ図 以外 のダイアグラムを使いたい場合は、Graphviz software もインストールしてください

とのことなので、Graphvizも入れてやります。

これもaptで一発です。

$ sudo apt-get install graphviz

入りましたね。dotはgraphvizに付属するコマンドです。

$ dot -v
dot - graphviz version 2.36.0 (20140111.2315)
libdir = "/usr/lib/graphviz"

日本語フォント

すでに日本語フォントが入っているサーバであればスキップしてください。今回セットアップしている環境にはそもそも日本語フォントが入っていなかったので、その対応を行います。

まずはインストール状況の確認をします。うむ、入ってないっぽい。

### OSデフォルトのフォント
$ fc-match 
DejaVuSans.ttf: "DejaVu Sans" "Book"

### OS内にインストールされているフォント一覧
$ fc-match -a
DejaVuSans.ttf: "DejaVu Sans" "Book"
DejaVuSansCondensed.ttf: "DejaVu Sans" "Condensed"
(中略)
DejaVuSansMono-Oblique.ttf: "DejaVu Sans Mono" "Oblique"
DejaVuSansMono-BoldOblique.ttf: "DejaVu Sans Mono" "Bold Oblique"

日本語フォントをインストールします。今回はTakaoを入れてみます。

$ sudo apt-get install fonts-takao

IPAフォントの場合は以下。

$ sudo apt-get install fonts-ipafont fonts-ipaexfont

これで日本語がPlantUML内に存在してもうまいこと描画されるハズです。

PlantUML本体

ダウンロードページから落として、サーバにアップロードしても良いのですが面倒なので、ダウンロードページのソースを見てwgetしました。 https://sourceforge.net/projects/plantuml/files/latest/download

無事に落とせました。

### ダウンロード
$ wget 'https://downloads.sourceforge.net/project/plantuml/plantuml.jar?r=http%3A%2F%2Fplantuml.com%2Fstarting&ts=1538667739&use_mirror=jaist'

### リネーム
$ mv 'plantuml.jar?r=http%3A%2F%2Fplantuml.com%2Fstarting&ts=1538667739&use_mirror=jaist' plantuml.jar

動かしてみる

動作確認

以下のようなシーケンス図をtest.umlという名前で用意しました。

@startuml
Alice -> Bob: test
@enduml

このファイルを先程のjarファイルに食わせてやります。

$ java -jar plantuml.jar test.uml

画像ファイルが生成されていれば成功です。実際に中身も確認しておきましょう。

$ ls -l
-rw-rw-r--  1 bitnami bitnami 7465678 Sep 22 17:11 plantuml.jar
-rw-rw-r--  1 bitnami bitnami    2266 Oct  4 15:57 test.png
-rw-rw-r--  1 bitnami bitnami      37 Oct  4 15:56 test.uml

ローカルにダウンロードしました。

$ scp -P 22 foo@example.com:~/test.png .

実際に以下のように生成されていました。

コマンド化

jarファイルを適当な場所に移動します。他のユーザーも使うかもしれないのでホームディレクトリ以外が良いですね。

$ sudo cp plantuml.jar /usr/local/bin

以下のようなシェルスクリプトを用意し、パーミションを変更します。

$ sudo vi /usr/bin/plantuml
#!/bin/bash
export LANG=ja_JP.UTF-8;
/usr/bin/java -Djava.io.tmpdir=/var/tmp -Djava.awt.headless=true -jar /usr/local/bin/plantuml.jar  -charset UTF-8 ${@}

$ sudo chmod 0755 /usr/bin/plantuml

あとは先ほどと同様にPlantUMLファイルが変換できるか確認すれば完了です!

$ plantuml test.uml

※シェルスクリプトはこちらこちらを参考にさせていただきました。

続き

blog.katsubemakito.net

参考ページ

plantuml.com github.com

かんたん UML入門 [改訂2版] (プログラミングの教科書)
竹政 昭利 林田 幸司 大西 洋平 三村 次朗 藤本 陽啓 伊藤 宏幸
技術評論社
売り上げランキング: 42,218