我刚刚从 CACM 的一篇文章中意识到 Doxygen 也可以与 Java(和其他几种语言)一起使用。但是Java 已经有了Javadoc 工具。有人可以解释这两种方法的优缺点吗?它们是相互排斥的吗?Doxygen 有 Maven 插件吗?
4 回答
Doxygen 有许多 JavaDoc 不提供的特性,例如层次结构和合作上下文的类图、更多摘要页面、可选的源代码浏览(与文档交叉链接)、额外的标签支持,如 @todo on一个单独的页面,它可以生成 TeX 和 PDF 格式的输出。它还允许大量的视觉定制。
由于 Doxygen 支持标准的 JavaDoc 标签,您可以在任何带有 JavaDoc 注释的源代码上运行 Doxygen。在没有 JavaDoc 的情况下在源代码上运行通常甚至是有意义的,因为即使没有文档,图表和源代码浏览也可以帮助理解代码。由于 JavaDoc 工具会忽略未知标签,因此您甚至可以使用额外的 Doxygen 标签而不会破坏 JavaDoc 的生成。
说了这么多,我必须承认我已经很久没有使用 Doxygen 了。现在我倾向于严重依赖我的 IDE 来提供相同的可视化,我通常不会将 JavaDoc 当作 HTML 页面来阅读,而是将源文件导入我的 IDE,以便它可以生成 JavaDoc 弹出窗口,我可以跳转到定义。这比 Doxygen 提供的功能更强大。如果您想在 IDE 之外拥有文档并且乐于运行非 Java 工具,那么 Doxygen 值得一试,因为它不需要对您的 Java 代码进行任何更改。
如果您是 Java 新手并且以前使用过 Doxygen,我只会将 Doxygen 与 Java 一起使用,从而减少您在使用 javadoc 时遇到的学习曲线。如果您以前没有使用过 Doxygen,我会坚持使用 javadoc,因为它是专门为 Java 设计的。如果您不知道其中任何一种,并且您使用 C++(或其他支持的语言)和使用 Java 一样多,那么 Doxygen 是一个不错的选择,因为您可以将它用于两种语言。
这两种工具都易于使用,具有相似的功能集。两者都有用于 NetBeans 和 Eclipse 的插件(或预先内置),从而可以更快地生成文档。每个人使用的评论风格有很多重叠,但它们并不完全相同,所以很难将它们混合在一起(你必须知道两者的细节,忽略任何特征特定于一个或另一个)。我从未使用过它,但似乎确实有一个Doxygen 的 Maven 插件。
我喜欢使用 Doxygen,您可以将类图显示在与文档相同的页面上。此外,如果需要,我喜欢它直接将您链接到源代码的事实。我不知道 javadoc 是否具有这些功能。
JavaDocs 的一大优势是它们可以正常工作。构建和查看它们所需的一切都包含在 JDK 中,您已经需要安装这些 JDK 来编译程序。
另一方面,Doxygen 的设置和正常工作可能会很痛苦。但如果设置正确,它应该能够生成 PDF、RTF、DocBook 以及 HTML。默认情况下,HTML 的组织方式不如 JavaDocs,因为 index.html 默认情况下会显示一个空白页面。此外,内联类和静态成员可能需要在文档中包含特殊标志,如果您想生成 PDF,您可能必须处理没有所需 pdflatex 命令的 Linux 发行版的麻烦(例如 Ubuntu/Mint 有最近有问题)所以如果你只是简单地安装它并运行你可能会得到一个充满错误的屏幕,即使是一个简单的程序。与安装 API 时自动获取 javadoc 的便利性相比,Doxygen 设置可能是一种悲惨的体验。一旦你克服了障碍,