F.A.Q.PlantUMLの目標は何ですか?PlantUMLは、シンプルで人間が読むことのできるテキストの記述を使って、UMLの図を描くために使われます。 ご注意いただきたいのは、矛盾した図が描画されてしまうことです。(例えば、2つのクラスがお互いに継承し合うような図です。) ですからPlantUMLは、モデリングツールというよりはむしろ描画ツールです。 PlantUML Serverで生成した画像はいつまで保持されますか?PlantUML Server で生成されたPNG画像やSVG画像へのリンクは永続的に有効です (つまりサーバが死なない限りは)。 しかしながら、どんな図もサーバには保持されません。 これは矛盾しているように聞こえるかもしれませんが、そうではありません。全ての図は圧縮されURL自身に埋め込まれます。URLを受け取ると、サーバはURLから図のテキスト情報を復元し、画像を生成します。 このため、何も保持する必要がないのです。仮にサーバがダウンしたとしても、コマンドラインで -decodeurl フラグを使用すれば図の内容を取得することが可能です。さらに、図のデータはPNG画像のメタデータに保存されているため、ダウンロードした画像からも図の内容を取得することが可能です。 時折、私たちはサーバをHTTPのTRACEを有効にすることがあるかもしれません。これは主にパフォーマンスの問題(がいくつか発生した場合)でトラフィックを把握するために行います。問題が解決してしまえば、HTTPのTRACEを無効化し、ログも削除します。 また、大まかにサーバ負荷を計測するために、生成された(トップページでプリントされた)図の数をカウントしている点についてもご了承ください。 内容がセンシティブでないかについても考慮に入れてください。たとえ私たちが生成した図を保持しないと言っても、全てのトラフィックはHTTPを通るので捕捉が容易であることを念頭に入れてください。 そのため、センシティブな情報を含む図を生成しようと考えている場合は、ご自分のネットワークにローカルサーバを立てるべきかもしれません。 動かない !PlantUML は様々なシステムでインストールされており、インストール時に発生したマイナーな問題がユーザから報告されることがあります。こちらのページをご覧になれば、何が誤っているか手引きを受けられるかもしれません。 どのバージョンの Graphviz を使うべきでしょうか? Graphviz についての 情報 や実行すべき テスト を確認してください。 テスト済みで、動作するものとなっているバージョンは以下のとおりです:
dot -c をコマンドラインで実行する必要があるかもしれません。 ![]() dot -c コマンドは管理者権限で実行する必要があるかもしれません。 他の選択肢は、Win32 version of GraphViz 2.44をインストールすることです。こちらの場合、インストール後の作業は不要です。 Graphviz を自身でコンパイルする場合は、 PlantUML が動作するのに必要な libexpat もビルドする必要があります。 WARNING This translation need to be updated. WARNING PlantUMLは成熟したソフトウェアですか?新しいリリースはありますか?Google Trendsは前向きな傾向です。そして、PlantUMLに関する本もいくつかあります。つまり、成熟していると言えるでしょう。 PlantUMLは継続的インテグレーションの考え方で開発されているので、頻繁に新規のリリースが行われ、(理想的には)後方互換性も保たれています。PlantUML.jarというファイルはその都度変更されますが、ずっと同じファイル名のままです。 使用している正確なバージョンを知りたい場合は、コマンドラインで次のように入力してください:
プログラムの更新がないかを確認するにはどうすればよいですか? 新しいバージョンがダウンロードできるかどうかは、ダウンロードページを確認してください。 また、以下のRSSを購読することもできます。 また、次のコマンドを使用することもできます。
Eclipseプラグインにてエラーメッセージが表示されたのですが 以下のようなエラーメッセージが表示されたようでしたら : The currently displayed page contains invalid values Windows/Preferences/PlantUML が表示されている場合、Eclipseを終了して、コマンドラインから-clean フラグを使用してみてください。
サイズの大きな図を作成したい PlantUMLは画像の幅と高さを4096に制限しています。この制限を上書きするための環境変数 PLANTUML_LIMIT_SIZE が存在します。PlantUMLが起動される前にこの環境変数が設定されている必要があります。以下のように設定できます。
アクセント付きの文字を使用したところ、問題が発生しました。 文字コードは注意を要する問題です。デフォルトではPlantUMLは、プラットフォームのデフォルトの文字コードを使用します。それはUTF-8かもしれませんし、違うかもしれません。使用している文字コードを知りたい場合は、次のコマンドを使用してください:
-charset フラグを使用してください:
日本語のようなアジア圏の文字を使用したところ、問題が発生しました。 PlantUMLを起動する前に、シェルで LANG 変数にja_JP.UTF-8 を設定する必要があると、日本人のユーザから報告が上がっています。
EPS形式のファイルはどのようにして作成するのですか? コマンドラインにて -eps フラグを入力するか、ANT タスクにて format="eps" を指定してください。 XMI形式ファイルの対応状況は ? 現在、対応に向けて 取り組んで います。 -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○○を使用してください。 PlantUMLはどのライセンスで配布されていますか? PlantUMLはGPLライセンスの下で配布されています。 次のコマンドラインオプションを使ってライセンスを出力することができます。
私は GPL ライセンスなんて嫌いですよ! 大っ嫌い!! 以下のライセンスも利用可能です: これらのバージョンには、いくつかの機能(例えばDITAA)が含まれていません。しかしUMLダイアグラムの生成に関しては100%可能です。 これらのバージョンでライセンスを出力するには、次のコマンドラインオプションを使用します:
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のウェブサイトで公開されている文書類(使用例や注意事項など)は、著作権で保護されています。しかし、オリジナルのドキュメンテーションを作ることは可能です。 WordマクロをJava 7で実行すると、"file not found"というメッセージが表示されました。 環境変数を設定する必要があるかもしれません。Windowsの環境変数設定で、次の2つの変数を探してください: 変数PATH の値に、;C:\Program Files\Java\jre7\bin を追加変数 CLASSPATH の値に、;C:\Program Files\Java\jre7\lib を追加 If they do not exist, create new User Variables: 変数PATH の値に、.;C:\Program Files\Java\jre7\bin.; を追加変数 CLASSPATH の値に、.;C:\Program Files\Java\jre7\lib.; を追加 EmptySvgExceptionとは何ですか? PlantUMLはGraphvizを使用してダイアグラムを生成しています。PlantUMLはdotプログラムを実行し、dotにより生成されたSVGデータを取得します。 このメッセージは、PlantUMLがdotプログラムから、空のSVGデータを受け取ったためUMLダイアグラムの生成に失敗した場合に表示されます。これにはいくつかの理由が考えられます。
X11やheadlessに関するエラーメッセージが表示されました。 PlantUMLをグラフィック機能の無いLinuxサーバーで実行すると、何らかのエラーが表示される場合があります:
-Djava.awt.headless=true フラグを使用してください。 例:
WARNING This translation need to be updated. WARNING Mac OS XでUnsatisfiedLinkErrorというエラーが表示されます。 Mac OS Xで次のようなエラーが表示された場合、
PlantUMLスクリプトがキーボードフォーカスやウィンドウフォーカスを奪ってしまいます。 設定に応じて、次のフラグを試してみてください。-Djava.awt.headless=true .例:
問題を発見しましたが、問題を再現するダイアグラムに機密情報が含まれているため、それを提供することができません。 コマンドラインで-cypher オプションを使用すると、通常の画像ファイルの代わりに.preproc ファイルを生成します。 生成された.preproc ファイルは、入力されたダイアグラムに似ていますが、すべての単語(PlantUML言語のキーワードを除く)がランダムな文字列に置き換えられています。 -cypher オプションを付けて何度か実行すると分かるように、毎回異なるテキストが生成されます。 また、この変換を行っているCypher.javaを見ると、元のダイアグラムを復元するようなバックドアが存在しないことを確認できると思います。 元のダイアグラムで何か問題が発生する場合、変換されたファイルでも同じ問題が発生することが期待できます。 変換後のファイルは全く無意味なものなので、安心して私たちに送ってください。あなたが元々何を作っていたのかを推測する手段は、私たちにはありません。 しかし、問題を再現して修正することができれば、元の(機密情報を含む)ダイアグラムでも問題が解消するでしょう。 質問の回答がここにはありませんでした! その場合には、この フォーラム で質問してみてください。 きっと誰かがあなたの質問に回答してくれるでしょう! |
|