如何从javadoc Ant任务的结果中排除特定的方法/构造函数?
我正在使用如何从javadoc Ant任务的结果中排除特定的方法/构造函数?,java,ant,javadoc,Java,Ant,Javadoc,我正在使用javadocAnt任务生成的javadoc来记录一个web服务,我想从输出中排除一些构造函数。如何做到这一点?请参阅相关文档 目前没有Javadoc选项 隐藏、排除或禁止公开 从javadoc生成的 文件 在vanilla Javadoc中,这似乎是不可能的,但提供了一些解决方法。更改方法的方法访问级别,然后使用使用Javadoc任务的访问级别筛选属性、私有、包,等等。但是,只有在代码中有意义时才这样做,例如。,具有不适当的松散访问级别的方法 例如,对于构造函数,您可以将访问级别降低
javadoc
Ant任务生成的javadoc来记录一个web服务,我想从输出中排除一些构造函数。如何做到这一点?请参阅相关文档
目前没有Javadoc选项
隐藏、排除或禁止公开
从javadoc生成的
文件
在vanilla Javadoc中,这似乎是不可能的,但提供了一些解决方法。更改方法的方法访问级别,然后使用使用
Javadoc
任务的访问级别筛选属性、私有、包
,等等。但是,只有在代码中有意义时才这样做,例如。,具有不适当的松散访问级别的方法
例如,对于构造函数,您可以将访问级别降低到包
,然后在同一个包中创建一个工厂类,在包外部提供构造访问。工厂类可以很容易地从javadocs中过滤出来。有点黑,但它可以工作。对于公共方法,没有办法做到这一点。标准实践(即使在相当多的JDK类中)是指出该方法或构造函数不是供公共使用的
有一个:
@排除-用于将API排除在
由Javadoc生成。程序员
将标记一个类、接口、,
构造函数、方法或具有
@排除。标签的存在会导致
要从生成的API中排除的API
文档标签后面的文本
可以解释被排除的原因,
但是会被Javadoc忽略。
(原提议为@hide,但
术语“隐藏”更适合于
运行时动态显示/隐藏
有关更多讨论,请参阅:
内显影剂
连接
尝试一下Chris Nokleberg的ExcludeDoclet:
我刚刚尝试过它,它似乎起到了作用。不是从您的文档中排除了一些公共内容,只是“通过隐晦实现安全性”(或者更确切地说,“通过隐晦实现文档”)的一个变体?如果构造函数是代码API的一部分,则可以供他们使用。如果他们发现并使用它,那是他们的错吗(因为你一开始就公开了)
如果您可以更改构造函数的可见性或将其完全删除,我会这样做。如果无法从API中删除它,请在Javadoc中向构造函数说明它不打算通过web服务使用。这样,您就与API的用户建立了合同,通知他们不要使用API
最好记录不应该使用它,而不是完全不记录它(如果它是公共的)。不记录它会增加无意中使用它的风险,当您更改实现时,使用它的客户端代码会中断。当前最简单的解决方案是使用@deprecated
启动javadoc注释,然后将-nodeprecated
传递给javadoc
命令。当然,如果您有实际不推荐的项目,但仍希望将其包含在文档中,则这可能是不可接受的。我得到的结论是使用的,它具有可以在方法文档中指定的@hide标记。为了防止参数化类型没有得到很好的文档化,检查ExcludeDoclet的更正,这是2009/2014年的答案,2019年有更新吗?谢谢2019年怎么样?