繁体   English   中英

如何从javadoc Ant任务的结果中排除特定的方法/构造函数?

[英]How do I exclude a specific method/constructor from the results of the javadoc Ant task?

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

对于公共方法,这是没有办法的。 标准实践(即使在相当多的JDK类中)也表明该方法或构造函数不适合公共使用。

计划在将来添加@exclude标签

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

请参阅相关的Javadoc FAQ条目

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

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

是不是从文档中排除了一些公开的内容,而仅仅是“通过隐蔽性实现安全性”(或者“通过隐蔽性进行文档化”)的变体? 如果构造函数是代码API的一部分,则可供他们使用。 如果他们发现并使用了它,那是他们的错吗(因为您首先公开了它)?

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

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

更改方法的方法访问级别,然后使用javadoc任务的访问级别过滤属性, privatepackage等。仅在代码中有意义的情况下才执行此操作,例如,访问级别不适当的方法。

例如,对于构造函数,您可以降低对package的访问级别,然后在提供该包外部构造访问权限的同一包中创建一个工厂类。 可以从javadocs中轻松过滤出工厂类。 有点hacky,但是可以用。

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

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

目前最简单的办法是先从javadoc注释@deprecated ,然后通过-nodeprecatedjavadoc命令。 当然,如果您有实际已弃用的物品但仍希望包含在文档中,则这可能是不可接受的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM