よくある質問(FAQ)

PlantUML

PlantUMLは、わかりやすく解釈しやすいテキスト記述によって UML 図を作成するために利用される、堅牢なツールです。ただし、2 つのクラス間の相互継承のような、一貫性のないダイアグラムの作成は制限されていないことに注意することが極めて重要です。その結果、PlantUML はモデリング・ツールというよりもむしろ描画ツールとして機能します。

PlantUML がダイアグラム作成に最適である理由を説明します:

  • テキスト・ベースの作成 PlantUML はテキストベースの原則で動作し、シンプルで人間が読める文章でダイアグラムを 作成できます。これにより、 ダイアグラム作成ツールの専門知識がなくても、ダイアグラム構造を容易に理解し、修正することができます。

  • オープンソースおよび無料:オープンソースおよび無料であることは、ライセンス料や購読料を支払うことなくPlantUMLを利用できることを意味します。

  • スマートなレイアウトアルゴリズム:PlantUMLは、インテリジェントなレイアウトアルゴリズムを採用しています:* このツールはインテリジェントなレイアウトアルゴリズムを採用してお り、ダイアグラムの要素の首尾一貫した、視覚的に美しい配置を保証し、手 動による位置合わせの手間を省きます。

  • 自動ダイアグラム生成:* PlantUML は、提供されたテキストに基づいて自律的にダイアグラムを 作成するジェネレーターとして機能します。この機能により、ダイアグラムの迅速な作成と更新が簡素化されるだけでなく、美観よりも構造や関係の定義に集中することができます。

  • 高いカスタマイズ性:高度なカスタマイズが可能なため、ダイアグラムの外観を好みに合わせることができます。さらに、 PlantUML コミュニティの豊富なリソースを利用 、一般的なレイア ウトの問題に対する解決策を得ることができます。

要するに、PlantUML は、プロフェッショナルなダイアグラムを迅速かつ 容易に作成できる、強力で適応性のあるツールとして登場しました。PlantUMLは、ダイアグラムのレイアウトと視覚化を管理する自動化されたアシスタンスを提供し、ダイアグラムの作成にテキストベースの手法を好む個人を特に対象としています。

PlantUMLのダイアグラムの美しさに不満ですか?あなたにできること

  • テーマの活用

PlantUML では、あなたのダイアグラムの外観をパーソナライズするために、テーマを使用することができます。PlantUML は、素早く選択できる様々なビルトインテーマを提供するだけでなく、カスタ ムカラーやスタイルの定義を通して、独自のテーマを作成することもできます。

  • 自動レイアウト調整

ダイアグラム内の個々の要素を手動で整列させる面倒な作業とはおさらばです。PlantUML のインテリジェントなレイアウトアルゴリズムは、あなたのダイアグラム内の要素を明確かつ論理的に整理する、大変なタスクを肩代わりします。これにより、重要な関係や構造の説明に集中することができ、プロフェッショナルなダイアグラムを簡単かつ迅速に作成することができます。

  • ジェネレータとしての PlantUML を理解する

PlantUML はジェネレータとして動作し、入力されたテキストに基づいて 自律的にダイアグラムを作成します。これは、迅速で手間のかからないダイアグラム作成を促進するだけでなく、更新プロセ スも合理化します。入力テキストの簡単な変更は、即座にダイアグラムに反映されま す。

しかしながら、この利便性は、正確なレイアウトに対する 制限されたコントロールという代償を伴うものであり、手動の要素位置決めを可能に するツールと比較した場合の制約となります。にもかかわらず、多くの人が、ジェネレータの効率と時間節約の属性が、この欠点を上回ると感じています。

レイアウトの一般的な問題に対するアドバイスや解決策を求める人々にとって、PlantUMLコミュニティ・フォーラムは、ヒントを交換し、あなたのダイアグラムのカスタマイズの熟練度を高め、あなたのジレンマに対する答えを得るための活気あるプラットフォームとして立っています。

PlantUML Serverで生成した画像はいつまで保持されますか?

PlantUML Server で生成されたPNG画像やSVG画像へのリンクは永続的に有効です (つまりサーバが死なない限りは)。
しかしながら、どんな図もサーバには保持されません

これは矛盾しているように聞こえるかもしれませんが、そうではありません。全ての図は圧縮されURL自身に埋め込まれます。URLを受け取ると、サーバはURLから図のテキスト情報を復元し、画像を生成します。 このため、何も保持する必要がないのです。仮にサーバがダウンしたとしても、コマンドライン-decodeurlフラグを使用すれば図の内容を取得することが可能です。さらに、図のデータはPNG画像のメタデータに保存されているため、ダウンロードした画像からも図の内容を取得することが可能です。

時折、私たちはサーバをHTTPのTRACEを有効にすることがあるかもしれません。これは主にパフォーマンスの問題(がいくつか発生した場合)でトラフィックを把握するために行います。問題が解決してしまえば、HTTPのTRACEを無効化し、ログも削除します。

内容がセンシティブでないかについても考慮に入れてください。たとえ私たちが生成した図を保持しないと言っても、全てのトラフィックはHTTPを通るので捕捉が容易であることを念頭に入れてください。

そのため、センシティブな情報を含む図を生成しようと考えている場合は、ご自分のネットワークにローカルサーバを立てるべきかもしれません。

動かない !

PlantUML は様々なシステムでインストールされており、インストール時に発生したマイナーな問題がユーザから報告されることがあります。
こちらのページをご覧になれば、何が誤っているか手引きを受けられるかもしれません。

どのバージョンの Graphviz を使うべきでしょうか?

Graphvizの詳細はこちらを参照してください。

テスト済みで、動作するものとなっているバージョンは以下のとおりです:

  • 2.26.3
  • 2.28
  • 2.30.1
  • 2.34
  • 2.36
  • 2.38
  • 2.44

注意: バージョン 2.39 と 2.42 は PlantUMLではうまく動作しないようです.

バージョン2.44をWindowsで使用する場合、インストールを完了させるために、以下の例のようにdot -cをコマンドラインで実行する必要があるかもしれません。

dot -cコマンドは管理者権限で実行する必要があるかもしれません。

Graphviz を自身でコンパイルする場合は、 PlantUML が動作するのに必要な libexpat もビルドする必要があります。

WARNING
 This translation need to be updated. 
WARNING

PlantUMLは成熟したソフトウェアですか?新しいリリースはありますか?

Google Trendsは前向きな傾向です。そして、PlantUMLに関する本もいくつかあります。つまり、成熟していると言えるでしょう。

PlantUML継続的インテグレーションの考え方で開発されているので、頻繁に新規のリリースが行われ、(理想的には)後方互換性も保たれています。PlantUML.jarというファイルはその都度変更されますが、ずっと同じファイル名のままです。

使用している正確なバージョンを知りたい場合は、コマンドラインで次のように入力してください:

java -jar plantuml.jar -version

もしくは、次の特別なダイアグラム記述を使用してください:

@startuml
version
@enduml

プログラムの更新がないかを確認するにはどうすればよいですか?

新しいバージョンがダウンロードできるかどうかは、ダウンロードページを確認してください。

また、以下のRSSを購読することもできます。

また、次のコマンドを使用することもできます。

java -jar plantuml.jar -version

または、次の特別なダイアグラム記述を使用してください。

@startuml
version
@enduml

サイズの大きな図を作成したい

PlantUMLは画像の幅と高さを4096に制限しています。この制限を上書きするための環境変数PLANTUML_LIMIT_SIZEが存在します。PlantUMLが起動される前にこの環境変数が設定されている必要があります。以下のように設定できます。

set PLANTUML_LIMIT_SIZE=8192

または

setenv PLANTUML_LIMIT_SIZE 8192

以下のように、コマンドラインの引数として指定することもできます。

java -DPLANTUML_LIMIT_SIZE=8192 -jar /path/to/plantuml.jar ...

ただし、非常に大きな(例えば、 20 000 x 10 000 ピクセルを超えるような)図を作成しようとした場合、メモリ問題が発生する可能性があります。 この場合、以下のパラメータをjava vmに与える必要があります。-Xmx1024m.

アクセント付きの文字を使用したところ、問題が発生しました。

文字コードは注意を要する問題です。デフォルトではPlantUMLは、プラットフォームのデフォルトの文字コードを使用します。それはUTF-8かもしれませんし、違うかもしれません。使用している文字コードを知りたい場合は、次のコマンドを使用してください:

java -jar plantuml.jar -help

...
-charset xxx To use a specific charset (default is windows-1252)
...

違う文字コード(例えばUTF-8)を使いたい場合は、-charsetフラグを使用してください:

java -jar plantuml.jar -charset UTF-8 ...

unicodeに関する情報はこちら。Javaは、UTF-8に設定した場合でもB.O.M. (Byte Order Mark)をサポートしませんが、PlantUMLに回避策が含まれているので、これに関する問題は発生しません。

日本語のようなアジア圏の文字を使用したところ、問題が発生しました。

PlantUMLを起動する前に、シェルでLANG変数にja_JP.UTF-8を設定する必要があると、日本人のユーザから報告が上がっています。

export LANG = ja_JP.UTF-8

新しいアーキテクチャの採用後は、Javaで東アジアの文字を描画できるようになったので、この対応は不要になりました。

EPS形式のファイルはどのようにして作成するのですか?

コマンドラインにて -eps フラグを入力するか、ANT タスクにて format="eps" を指定してください。

You can use the ``-teps`` flag in the command line, or ``format="eps"`` in [the ANT task](ant).
WARNING
 This translation need to be updated. 
WARNING

PlantUMLはどのライセンスで配布されていますか?

PlantUMLはGPLライセンスの下で配布されています。 次のコマンドラインオプションを使ってライセンスを出力することができます。

java -jar plantuml.jar -license

もしくは次の特別なダイアグラムを使用してください。

@startuml
license
@enduml

私は GPL ライセンスなんて嫌いですよ! 大っ嫌い!!

以下のライセンスも利用可能です:

これらのバージョンには、いくつかの機能(例えばDITAA)が含まれていません。しかしUMLダイアグラムの生成に関しては100%可能です。

これらのバージョンでライセンスを出力するには、次のコマンドラインオプションを使用します:

java -jar plantuml.jar -license

もしくは、特別なダイアグラムを使用することができます:

@startuml
license
@enduml

PlantUMLによって生成された画像にはGPL/LGPL/ASL/EPL/MITライセンスが適用されますか?

いいえ、いずれも適用されません。

PlantUMLを実行して生成した画像は、そのフォーマット(PNG, SVG...)にかかわらず、対応するソースコード(つまり、PlantUML言語のテキストによる記述)の作成者の所有物となります。

PlantUMLを実行して生成した画像は、「対象著作物(covered work)」とはみなされません。それらは自由に使用することができます。

生成された画像を使用する際に、GPL/LGPL/ASL/EPL/MITいずれのライセンスに言及する必要もありません。また、PlantUMLによって生成されたことを明示していただくとPlantUMLチームは喜びますが、これは必須の要求事項ではありません。

例外として、PlantUML言語で書かれたテキストに何らかのライセンス(GPL/LGPL/ASL/EPL/MITなど)が適用されている場合、論理的には生成された画像もそのライセンスの対象となります。

LGPL版バイナリファイルのPlantUML.jarを再配布することはできますか。また、その場合に制限事項はありますか。

Javaのソースコードとjarファイルに手を加えていない限り、他のクローズドなソフトウェアにPlantUML.jarを組み込むことができます。

唯一の制限事項は、ソフトウェアがPlantUMLを使用していてPlantUMLがLGPLの下で配布されているということを、そのソフトウェアのライセンスもしくはドキュメンテーション中に表示する必要があるということです。

それ以外の制限事項は無く、そのソフトウェアを販売して対価を得ることも可能です。(しかしながら、その場合でも寄付は歓迎します:-))

PlantUML記法のライセンスはどうなっていますか?

PlantUML記法自体にはライセンスはありません。つまり、誰でも使うことができます。

コード中のコメントとしてPlantUMLを使用することができます。そのコメントはあなた自身の所有物となります。それらは「対象著作物(covered work)」とはみなされず、GPL/LGPL/APL/EPL/MITライセンスの対象でもありません。

実装されたもの(つまり、PlantUMLのプログラム)のみがGPL/LGPL/ASL/EPL/MITライセンスの対象となっています。一方で、PlantUMLのウェブサイトで公開されている文書類(使用例や注意事項など)は、著作権で保護されています。しかし、オリジナルのドキュメンテーションを作ることは可能です。

EmptySvgExceptionとは何ですか?

PlantUMLはGraphvizを使用してダイアグラムを生成しています。PlantUMLはdotプログラムを実行し、dotにより生成されたSVGデータを取得します。

このメッセージは、PlantUMLがdotプログラムから、空のSVGデータを受け取ったためUMLダイアグラムの生成に失敗した場合に表示されます。これにはいくつかの理由が考えられます。

  • Graphvizのインストールに問題があった場合。クラス一つだけなどの簡単なダイアグラムの生成を試してみてください。
  • Graphvizのバージョンが古すぎて、PlantUMLから渡された情報を処理できなかった場合。testdotコマンドでバージョンを確認してください。
  • ダイアグラムが複雑すぎる場合。
  • PlantUML and/or dotのバグ。

Could not initialize class net.sourceforge.plantuml.ugraphic.UFont

java.lang.NoClassDefFoundError: Could not initialize class net.sourceforge.plantuml.ugraphic.UFontというエラーメッセージが表示された場合、それは、サーバーにフォントがインストールされていないことを意味していると思われます。

その場合、システムにfontconfigを追加することで解決できます:

sudo yum install fontconfig

または

sudo apt-get install fontconfig

をインストールする必要があるかもしれません。

ttf-droid

X11やheadlessに関するエラーメッセージが表示されました。

PlantUMLをグラフィック機能の無いLinuxサーバーで実行すると、何らかのエラーが表示される場合があります:

  • Can't connect to X11 window
  • X11 connection rejected because of wrong authentication.
  • HeadlessException

基本的にこれは、PlantUMLがグラフィック関連のリソースを必要としていることが原因です(詳しくはこちら)。 PlantUMLをheadlessモードに設定するには-Djava.awt.headless=trueフラグを使用してください。

例:

/usr/bin/java -Djava.awt.headless=true -jar /data/PlantUml/plantuml.jar ...

If you see a similar message on MacOS Ventura after running plantuml with no arguments, this is a known issue but does not appear to indicate a problem since sub-commands (like -gui) do work.

WARNING
 This translation need to be updated. 
WARNING

Mac OS XでUnsatisfiedLinkErrorというエラーが表示されます。

Mac OS Xで次のようなエラーが表示された場合、

Error java.lang.UnsatisfiedLinkError / liblwawt.dylib /libosxapp.dylib

次のサイトの説明に従ってください。http://stackoverflow.com/questions/25914757/osx-yosemite-jvm-shared-library-does-not-contain-the-jni-createjavavm-symbol:

  1. JavaForOSXというパッケージをダウンロードし、インストールします。
  2. AptanaStidio3.iniというファイルを探します。デフォルトでは次のディレクトリにあります: /Applications/Aptana Studio 3/AptanaStudio3.app/Contents/MacOS
  3. -vm引数で使用するJavaを指定してAptana Studioを起動します: -vm /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java

Java 6のみで動作するようなので、次のようなエイリアスを定義してスクリプト中で使用してください。

alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6.0)"

PlantUMLスクリプトがキーボードフォーカスやウィンドウフォーカスを奪ってしまいます。

設定に応じて、次のフラグを試してみてください。-Djava.awt.headless=true.
例:

/usr/bin/java -Djava.awt.headless=true -jar /path/to/plantuml.jar ...

-pipeフラグを使う場合にも@startumlが必要ですか?

短い回答: ダイアグラムの開始には必ず @startuml (もしくは @startditaa、@startjcckit...)を使用してください。

長い回答:

@startuml/@startditaa/@startjcckit はダイアグラムの種類(uml, ditaa, jcckit...)を決定するのに役立っています。そして、@start○○の後に任意でファイル名を記述することができます。また、一つのファイルに複数のダイアグラムを含めることもできます。

PlantUMLの過去のバージョンでは、ditaaやjcckitをサポートしていませんでした。-pipeフラグを使用すると、標準出力にダイアグラムが生成されるため、標準入力から入ってくるダイアグラムは1つだけです。そして、ファイル名を指定する必要もありません。これらの理由から、-pipeフラグを使う場合、@startumlは不要でした。

その後、この仕様は訂正されることになり、-pipeフラグを使用した場合も含めて、常に@start○○が必要となりました。これは、ユーザの混乱を防ぐためでもあります。 残念ながら、-pipeフラグ使用時に@startumlが不要であるという事実に基づいて作られた既存のスクリプトが存在しているため、それらの古いスクリプトが実行できるように、この仕様はdeprecatedな選択肢として残してあります。私たちは後方互換性に気を配っています。

新規のスクリプトでは、この仕様に頼らず、-pipeフラグ使用時も@start○○/@end○○を使用してください。

XMI形式ファイルの対応状況は ?

現在、対応に向けて 取り組んで います。

問題を発見しましたが、問題を再現するダイアグラムに機密情報が含まれているため、それを提供することができません。

コマンドラインで-cypherオプションを使用すると、通常の画像ファイルの代わりに.preprocファイルを生成します。

生成された.preprocファイルは、入力されたダイアグラムに似ていますが、すべての単語(PlantUML言語のキーワードを除く)がランダムな文字列に置き換えられています。

-cypherオプションを付けて何度か実行すると分かるように、毎回異なるテキストが生成されます。 また、この変換を行っているCypher.javaを見ると、元のダイアグラムを復元するようなバックドアが存在しないことを確認できると思います。

元のダイアグラムで何か問題が発生する場合、変換されたファイルでも同じ問題が発生することが期待できます。 変換後のファイルは全く無意味なものなので、安心して私たちに送ってください。あなたが元々何を作っていたのかを推測する手段は、私たちにはありません。

しかし、問題を再現して修正することができれば、元の(機密情報を含む)ダイアグラムでも問題が解消するでしょう。

WARNING
 This translation need to be updated. 
WARNING

質問の回答がここにはありませんでした!

その場合には、この フォーラム で質問してみてください。

きっと誰かがあなたの質問に回答してくれるでしょう!


Privacy Policy      Advertise