我正在使用javadoc
Ant任务生成的javadoc来记录Web服务,我想从输出中排除一些构造函数。我该怎么做?
答案 0 :(得分:16)
公共方法无法做到这一点。标准实践(即使在很多JDK类中)也表示方法或构造函数不适合公共使用。
有一个plan to add an @exclude tag in the future:
@exclude - 要从中排除API 由Javadoc产生。程序员 会标记一个类,界面, 构造函数,方法或字段 @排除。标签的存在会导致 要从生成的API中排除的API 文档。标签后面的文字 可以解释排除的原因, 但是Javadoc会忽略它。 (以前提议为@hide,但是 术语“隐藏”更适合 运行时动态显示/隐藏 能力。)有关更多讨论,请参阅: 开发人员Feature Request #4058216 连接。
答案 1 :(得分:8)
查看相关的Javadoc FAQ entry。
目前没有Javadoc选项 隐藏,排除或压制公众 来自javadoc生成的成员 文档。
这似乎在 vanilla Javadoc中无法实现,但提供了一些解决方法。
答案 2 :(得分:8)
不是从您的文档中排除某些公开内容只是“通过默默无闻的安全”(或者更确切地说,“通过默默无闻的文档”)的变体?如果构造函数是代码API的一部分,那么它们可供他们使用。如果他们发现并使用它,那是他们的错吗(因为你首先公开了它)?
如果你可以改变构造函数的可见性或完全删除它,我会去那。如果您无法从API中删除它,请在Javadoc中为构造函数告知它不打算通过Web服务使用它。这样,您就与API用户建立了合同,通知他们不要使用它。
最好记录不应该使用它而不是根本不记录它(如果它是公开的)。不记录它会增加无意中使用它的风险,然后当您更改实现时,使用它的客户端代码会中断。
答案 3 :(得分:2)
更改方法的方法访问级别,然后使用javadoc
任务的访问级别过滤属性private
,package
等。只有在有意义时才执行此操作但是,在您的代码中,例如,访问级别不正确的方法。
例如,对于构造函数,您可以将访问级别降低到package
,然后在同一个包中创建一个工厂类,该工具类在包外提供构造访问。可以从javadocs轻松过滤工厂类。有点hacky,但它确实有效。
答案 4 :(得分:2)
尝试Chris Nokleberg的ExcludeDoclet: http://www.sixlegs.com/blog/java/exclude-javadoc-tag.html
我一直在尝试它,似乎就是这个伎俩。
答案 5 :(得分:2)
目前最简单的解决方案是使用@deprecated
启动javadoc注释,然后将-nodeprecated
传递给javadoc
命令。当然,如果您有实际已弃用的项目,但仍希望包含在文档中,则可能无法接受。
答案 6 :(得分:0)
我得到的关闭是使用Doclava,它具有您可以在方法文档中指定的@hide标记。