我刚从CACM的一篇文章中了解到,Doxygen也使用Java(以及其他几种语言).但是Java已经有了Javadoc工具.有人可以解释这两种方法的优缺点是什么?它们是互相排斥的吗?是否有Doxygen的Maven插件?
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的插件(或预先构建),使生成doc的速度更快.每个评论风格都有很多重叠,但它们并不完全相同,所以很难将它们混合在一起(你必须知道两者的细节,遗漏任何特征)特定于一个或另一个).我从来没有使用它,但似乎有Doxygen的Maven插件.