web-dev-qa-db-ja.com

DoxygenとJavadoc

CACMの記事から、DoxygenがJava(および他のいくつかの言語)でも動作することを知りました。しかし、JavaにはすでにJavadocツールがあります。どちらのアプローチの長所と短所は何ですか?それらは相互に排他的ですか?DoxygenのMavenプラグインはありますか?

66
lindelof

Doxygenには、JavaDocが提供しない多くの機能があります。階層と協力コンテキストのクラス図、より多くの要約ページ、オプションのソースコード閲覧(ドキュメントと相互リンク)、別のページの@todoなどの追加タグのサポート。TeXおよびPDF形式。多くの視覚的なカスタマイズも可能です。

Doxygenは標準のJavaDocタグをサポートしているので、JavaDocコメントを付けたソースコードでDoxygenを実行できます。図やソースコードの参照は、ドキュメントがなくてもコードを理解するのに役立つため、JavaDocを使用せずにソースコードで実行するのが理にかなっていることがよくあります。また、JavaDocツールは未知のタグを無視するため、JavaDoc生成を中断せずに追加のDoxygenタグを使用することもできます。

これをすべて言ったが、私は長い間Doxygenを使っていないことを認めなければならない。最近、同じ視覚化を提供するためにIDEに大きく依存する傾向があり、通常JavaDocをHTMLページとして読み取らず、JavaDocを生成できるようにIDEにソースファイルをインポートしますフライアウトと定義にジャンプできます。これは、Doxygenが提供するものよりもさらに強力です。 IDEの外部にドキュメントがあり、Java以外のツールを実行したい場合、DoxygenはJavaコードを変更する必要がないため、試してみる価値があります。

71
Peter Becker

Javaを初めて使用する場合、Doxygenを以前に使用したことがある場合は、経験する学習曲線を減らして、DoxygenをJava javadoc。Doxygenを以前に使用したことがない場合は、Javaを念頭に置いて設計されています。どちらかがわからない場合は、 Javaと同じくらいC++(または他のサポートされている言語)、Doxygenは両方の言語で使用できるので良い選択です。

どちらのツールも使いやすく、同様の機能セットがあります。どちらもNetBeansおよびEclipse用のプラグインを備えている(または事前に組み込まれている)ため、ドキュメントの生成がさらに高速になります。それぞれが使用するコメントスタイルには多くの重複がありますが、それらは正確に同じではないため、それらを一緒に混合することは困難です(bothの詳細を知っている必要があり、どちらか一方に固有の機能は省略します)。私はそれを使用したことはありませんが、 DoxygenのMavenプラグイン があるようです。

15
Bill the Lizard

Doxygenを使用すると、ドキュメントと同じページにクラス図を表示できます。また、必要に応じて、ソースコードに直接リンクするという事実も気に入っています。ただし、javadocにこれらの機能があるかどうかはわかりません。

3
dr_pepper

JavaDocsの大きな利点の1つは、機能することです。これらのビルドと表示に必要なものはすべて、プログラムをコンパイルするためにインストールする必要があるJDKに含まれています。

一方、Doxygenはセットアップして正しく動作させるのが面倒です。しかし、正しく設定されていれば、PDF、RTF、DocBook、およびHTMLを生成できるはずです。 index.htmlはデフォルトで空白のページを表示するため、HTMLはデフォルトではJavaDocsほど整理されていません。また、インラインクラスと静的メンバーには、ドキュメントに含める特別なフラグが必要な場合があります。また、PDFを生成する場合は、必要なLinuxディストリビューションの手間を処理する必要がありますpdflatexコマンド(たとえば、Ubuntu/Mintに最近問題が発生したため)apt-getをインストールして実行すると、単純なプログラムでもエラーでいっぱいの画面が表示される場合があります。しかし、Doxygenのセットアップは悲惨な体験になる可能性がありますが、ハードルを克服すれば、Javaだけでなく、より多くのプロジェクトに対応できるようになるはずです。

2
MintUser