CACMの記事から、DoxygenはJava(および他のいくつかの言語)でも動作することがわかりました。しかし、JavaにはすでにJavadocツールがあります。誰かがどちらのアプローチの長所と短所を説明できますか?それらは相互に排他的ですか?Doxygen用のMavenプラグインはありますか?
4 に答える
Doxygen には、JavaDoc が提供していない多くの機能があります。たとえば、階層と連携コンテキストのクラス図、より多くの概要ページ、オプションのソースコード閲覧 (ドキュメントとの相互リンク)、@todo などの追加タグのサポートです。別のページであり、TeX および PDF 形式で出力を生成できます。また、多くの視覚的なカスタマイズも可能です。
Doxygen は標準の JavaDoc タグをサポートしているため、JavaDoc コメントを含む任意のソース コードで Doxygen を実行できます。ドキュメントがなくてもコードを理解するには、図とソース コードの参照が役立つため、JavaDoc を使用せずにソース コードを実行することも理にかなっている場合があります。また、JavaDoc ツールは不明なタグを無視するため、JavaDoc の生成を中断することなく、追加の Doxygen タグを使用することもできます。
以上のことをすべて言いましたが、私は長い間 Doxygen を使用していないことを認めなければなりません。私は最近、同じ視覚化を提供するために IDE に大きく依存する傾向があり、通常は JavaDoc を HTML ページとして読み取るのではなく、ソース ファイルを IDE にインポートして、JavaDoc フライアウトを生成し、定義にジャンプできるようにします。これは、Doxygen が提供するものよりもさらに強力です。IDE の外部にドキュメントが必要で、Java 以外のツールを実行しても構わない場合は、Java コードを変更する必要がないため、Doxygen を試してみる価値があります。
Java を初めて使用し、以前に Doxygen を使用したことがある場合にのみ、Java で Doxygen を使用し、javadoc で経験する学習曲線を短縮します。以前に Doxygen を使用したことがない場合は、Java を念頭に置いて特別に設計されているため、javadoc を使用することをお勧めします。どちらも知らず、Java と同じくらい C++ (または他のサポートされている言語) で作業している場合は、両方の言語で使用できるため、Doxygen を選択することをお勧めします。
どちらのツールも使いやすく、同様の機能セットを備えています。どちらにも NetBeans と Eclipse 用のプラグイン (または事前に組み込まれている) があり、ドキュメントの生成がさらに高速になります。それぞれが使用するコメント スタイルには多くの重複がありますが、まったく同じではないため、それらを混在させることは困難です (両方の詳細を知っておく必要があります。どちらか一方に固有)。私はそれを使用したことはありませんが、Doxygen 用の Maven プラグインがあるようです。
Doxygen を使用すると、ドキュメントと同じページにクラス図を表示できるという事実が気に入っています。また、必要に応じてソース コードに直接リンクできる点も気に入っています。ただし、javadoc にこれらの機能があるかどうかはわかりません。
JavaDocs の大きな利点の 1 つは、それらが機能することです。それらをビルドして表示するために必要なものはすべて、プログラムをコンパイルするためにインストールする必要がある JDK に含まれています。
一方、Doxygen は、セットアップして正しく動作させるのが面倒な場合があります。ただし、正しく設定されていれば、PDF、RTF、DocBook、および HTML を生成できるはずです。index.html はデフォルトで空白のページを表示するため、HTML はデフォルトでは JavaDocs ほど整理されていません。また、インライン クラスと静的メンバーはドキュメントに含める特別なフラグが必要な場合があり、PDF を生成する場合は、Linux のディストリビューションに必要な pdflatex コマンドがないという問題に対処する必要がある場合があります (たとえば、Ubuntu/Mint には最近は問題があります) ので、単に apt-get インストールして実行すると、単純なプログラムでも画面いっぱいにエラーが表示されることがあります。API をインストールするときに javadoc を自動的に取得する簡単さと比較すると、Doxygen のセットアップは悲惨な経験になる可能性があります。ハードルを乗り越えたら、