17

我正在使用javadocAnt 任务生成的 javadocs 来记录 Web 服务,并且我想从输出中排除一些构造函数。我怎么做?

4

7 回答 7

16

对于公共方法,没有办法做到这一点。标准做法(即使在相当多的 JDK 类中)是表明该方法或构造函数不是供公共使用的。

计划在未来添加一个@exclude 标记

@exclude - 用于从 Javadoc 生成中排除的 API。程序员会用@exclude 标记一个类、接口、构造函数、方法或字段。标签的存在会导致 API 从生成的文档中排除。标记后面的文本可以解释排除的原因,但会被 Javadoc 忽略。(以前作为@hide 提出,但术语“隐藏”更适合运行时动态显示/隐藏功能。)有关更多讨论,请参阅: Developer Connection 中的功能请求#4058216

于 2009-07-13T18:44:02.267 回答
8

请参阅相关的Javadoc FAQ 条目

当前没有 Javadoc 选项可以从 javadoc 生成的文档中隐藏、排除或禁止公共成员。

看起来这在vanilla Javadoc中是不可能的,但提供了一些解决方法。

于 2009-07-13T16:17:58.023 回答
8

从您的文档中排除一些公开的东西不只是“通过默默无闻的安全性”(或者更确切地说,“通过默默无闻的文档”)的变体吗?如果构造函数是代码 API 的一部分,那么它们就可以使用。如果他们发现并使用它,那是他们的错吗(因为您首先将其公开)?

如果您可以更改构造函数的可见性或完全删除它,我会这样做。如果您无法从 API 中删除它,请在构造函数的 Javadoc 中说明它不打算通过 Web 服务使用。这样,您就与 API 的用户建立了合同,通知他们不要使用它。

最好记录不应该使用它而不是根本不记录它(如果它是公开的)。不记录它会增加它被无意使用的风险,然后在您更改实现时使用它的客户端代码会中断。

于 2009-08-05T15:23:28.523 回答
4

目前最简单的解决方案是用 开始 javadoc 注释@deprecated,然后传递-nodeprecatedjavadoc命令。当然,如果您有实际已弃用的项目但仍想包含在文档中,这可能是不可接受的。

于 2017-05-09T16:08:19.937 回答
2

更改方法的方法访问级别,然后使用javadoc任务的访问级别过滤属性 、privatepackage。只有在代码中有意义时才这样做,例如,访问级别不适当的方法。

例如,对于构造函数,您可以将访问级别降低到package,然后在同一个包中创建一个工厂类,该类提供包外的构造访问。工厂类可以很容易地从 javadocs 中过滤出来。有点hacky,但它有效。

于 2009-07-13T18:36:15.497 回答
2

试试 Chris Nokleberg 的 ExcludeDoclet: http ://www.sixlegs.com/blog/java/exclude-javadoc-tag.html

我一直在尝试它,它似乎可以解决问题。

于 2009-08-05T15:06:14.373 回答
0

我得到的关闭是使用Doclava,它具有您可以在方法文档中指定的 @hide 标记。

于 2017-12-12T11:33:08.230 回答