一昨日、id:torutk:20110119で、Javadocにシーケンス図を埋め込む方法を書きましたが、次はクラス図を埋め込みたくなります。
ということで、まずは調査フェーズから。
Javadocにクラス図を埋め込むツールを探す
UMLGraph
定番と言えるツールで、あちこちで言及されています。
- 万人のためのオートメーション: プッシュボタンによるドキュメント作成
- http://java.dzone.com/articles/reverse-engineer-source-code-u?page=1
日本語が化ける問題があって回避方法の言及が以下URLにあります。
別途Graphvizツールが必要です。
実際に試してみる
UMLGraph
ダウンロードしたファイル(UMLGraph-5.4.zip)を作業ディレクトリで解凍・展開し、任意の場所へ配置します(例、C:\java\UMLGraph-5.4)。
Javadocにドックレットを指定します。
NetBeansで試してみたので、プロジェクトプロパティの構築→ドキュメント化で[追加のJavadocオプション]欄に以下を追記
-docletpath C:\java\UMLGraph-5.4\lib\UmlGraph.jar -doclet org.umlgraph.doclet.UmlGraphDoc
Javadocを生成すると、以下の警告が出て、パッケージ説明にはクラス図が入りますが、各クラスにはクラス図が入りません。
Warning, could not find a line that matches the pattern '(Class|Interface|Enum) BufferedStreamPerformance.*'. Class diagram reference not inserted
うーむ・・・
ちなみに、Windows OS上でNetBeansを使って作成し、ソースファイルの文字コードはUTF-8になっています。
APIviz
ダウンロードしたファイル(apiviz-1.3.1.GA-dist.zip)を作業ディレクトリで解凍・展開し、任意の場所へ配置します(例、C:\java\apiviz-1.3.1.GA)。
Javadocにドックレットを指定します。
NetBeansで試してみたので、プロジェクトプロパティの構築→ドキュメント化で[追加のJavadocオプション]欄に以下を追記
-docletpath C:\java\apiviz-1.3.1.GA\jar\apiviz-1.3.1.GA.jar -doclet org.jboss.apiviz.APIviz
Javadocを生成すると、パッケージ説明HTML、クラス説明HTMLにそれぞれクラス図が追加されます。