有没有产生Javadoc文档的公共方法的子集的方法吗? 例如,通过注释公共方法为“未公开API的

2019-08-19 12:36发布

我知道如何产生的Javadoc的类/接口/包的一个子集。 但是,有没有产生的Javadoc只有公共方法的子集的方法吗?

我宁愿是能够标记方法(Javadoc标记或批注)属于某个API与否是它的一部分。 然后有一个只对指定的方法集产生的Javadoc的工具 - 这形成了API的人。

一种方法,公/私/包接入之间的选择是不够的,我的项目。 公共方法可能属于公共API或者没有,或者它可能属于API 1,而不是API 2.从本质上讲,我希望能够从我的公共方法的任意子集选择的API。

Answer 1:

如果您使用的javadoc命令行工具,您可以将它们标记为排除公共方法Deprecated ,并使用-nodeprecated选项。 但是,如果你想要的东西更复杂,你就必须实现它自己。

如何做一个粗略的想法:

  1. 创建自定义的注释@ API1,@ API2等。
  2. 分类与注释您的方法(即它们标记)
  3. 写,告诉你要生成的Javadoc的API定制Ant任务读取配置参数(从文件,例如)。
  4. 仍然在Ant任务,循环遍历注解的方法和替换它不与已过时注释所选API的所有API注释。 这会从Javadoc中排除。

恕我直言,这是很多的麻烦。 就像他们在评论中说,如果你有多个接口的类(针对不同的用户配置文件,我猜?),考虑编写单独的接口。



Answer 2:

如果您是不依赖于javadoc的,你可以尝试交替的doxygen与有条件的部分 :

public class SomeClass {
    /// @cond API1
    /**
     * This method can be called as part of API1 only.
     */
    public void method() { ... }
    /// @endcond

    /// @cond (API1 || API2)
    /**
     * This method can be called as part of API1 or API2.
     */
    public void method2() { ... }
    /// @endcond
}

当你组的方法得当,还可以限制所需的数量@cond语句。

其实际包含的方法可接着由选择ENABLED_SECTIONS配置选项创建的文档时。



文章来源: Is there a way to produce Javadoc for a subset of public methods? For example by annotating public methods as “not part of the public API”