如何从javadoc Ant任务的结果中排除特定的方法/构造函数?
我正在使用javadoc
Ant任务生成的javadoc
来记录Web服务,我想从输出中排除一些构造函数。 我怎么做?
公共方法无法做到这一点。 标准实践(即使在相当多的JDK类中)是指示方法或构造函数不适合公共使用。
计划在将来添加@exclude标记 :
@exclude – 用于从Javadoc生成中排除的API。 程序员用@exclude标记类,接口,构造函数,方法或字段。 标记的存在将导致API从生成的文档中排除。 标记后面的文字可以解释排除的原因,但Javadoc会忽略它。 (以前建议使用@hide,但术语“隐藏”更适合于运行时动态显示/隐藏function。)有关更多讨论,请参阅:Developer Connection中的function请求#4058216 。
不是从文档中排除某些公开内容只是对“通过默默无闻的安全性”(或者更确切地说,“通过默默无闻的文档”)的变体进行排除? 如果构造函数是代码API的一部分,那么它们可供他们使用。 如果他们发现并使用它,那是他们的错(因为你首先将它公之于众)?
如果你可以改变构造函数的可见性或完全删除它,我会去那。 如果您无法从API中删除它,请在Javadoc中为构造函数告知它不打算通过Web服务使用它。 这样,您就与API的用户建立了合同,通知他们不要使用它。
最好记录它不应该被使用而不是根本不记录它(如果它是公开的)。 不记录它会增加无意中使用它的风险,然后在更改实现时使用它的客户端代码会中断。
请参阅相关的Javadoc FAQ条目 。
目前没有Javadoc选项可以从javadoc生成的文档中隐藏,排除或禁止公共成员。
看起来这在香草 Javadoc中是不可能的,但提供了一些解决方法。
更改方法的方法访问级别,然后使用javadoc
任务的访问级别过滤属性, private
, package
等。只有在代码中有意义时才这样做,但是,例如,访问级别不正确的方法。
例如,对于构造函数,您可以降低对package
的访问级别,然后在同一个包中创建一个工厂类,该类在包外提供构造访问。 可以从javadocs轻松过滤工厂类。 有点hacky,但它确实有效。
试试Chris Nokleberg的ExcludeDoclet: http : //www.sixlegs.com/blog/java/exclude-javadoc-tag.html
我一直在试验它,它似乎做了伎俩。
目前最简单的解决方案是使用@deprecated启动javadoc注释,然后将-nodeprecated
传递给javadoc
命令。 当然,如果您有实际已弃用的项目,但仍希望包含在文档中,则可能无法接受。
我得到的关闭是使用Doclava ,它具有您可以在方法文档中指定的@hide标记。
- 如何以无配置方式将可选任务sshexec加载到Ant中?
- 在编译Java时使用多个核心/处理器
- 找不到taskdef类org.apache.catalina.ant.InstallTask
- 使用Apache Ivy和netbeans
- 如何连接到远程服务器并使用Ant启动/停止在该特定服务器上运行的Tomcat?
- Ant在哪里设置’java.home’(并且它是错的)并且它应该附加’/ jre’吗?
- 当WAR的大小为41M时,如何避免在WAR中复制40M的java lib?
- 应该在哪里放置安装程序资源(wxs文件,dmg-script,图标)以及如何在部署自包含应用程序时配置maven antrun
- 无法阻止ant生成编译器Sun专有的API警告