基于自定义注解,来限制对某个类或者某个方法的javadoc输出。
实现方案
- 实现自定义doclet
- 代理原RootDoc
- 使用默认的HtmlDoclet生成文档
代理RootDoc,ClassDoc,PackageDoc
- 用我们实现的Doc类来代理默认的RootDoc,ClassDoc,PackageDoc。
- 代理类中核心方法如
com.sun.javadoc.RootDoc#classes
增加扩展,实现自定义的类过滤逻辑。 - 其余大部分类直接代理类的方法即可。
- 需要注意的是,在方法层面,需要将ClassDoc和PackageDoc中返回ClassDoc的方法均用自定义的ClassDoc进行代理。
- 最后,将代理的RootDoc传入给HtmlDoclet调用start方法生成文档即可。