【发布时间】:2009-02-26 20:31:17
【问题描述】:
我已经创建了 java api——从 C# 移植到更具体——除了公共接口之外,它还包含很多我不希望用户知道的内部内容。在 C# 中,我使用 doxygen 来生成文档。我认为 javadoc 具有类似的功能来排除某些公共成员、类,甚至包。
有人会建议如何做到这一点,也许是通过 Eclipse?
谢谢
【问题讨论】:
我已经创建了 java api——从 C# 移植到更具体——除了公共接口之外,它还包含很多我不希望用户知道的内部内容。在 C# 中,我使用 doxygen 来生成文档。我认为 javadoc 具有类似的功能来排除某些公共成员、类,甚至包。
有人会建议如何做到这一点,也许是通过 Eclipse?
谢谢
【问题讨论】:
我相信在 Eclipse 中,您可以指定的唯一排除类型是“排除所有受保护的成员”和基于包的排除(而不是基于类的排除)。
如果您使用 Ant 生成它们,则可以使用嵌套的“包”元素,并且可以使用文件集嵌套元素并向该文件集添加排除项。
例如:
<javadoc >
<sourcefiles>
<fileset dir="${src}">
<include name="**/*.java"/>
<exclude name="**/ClassToExclude.java"/>
</fileset>
</sourcefiles>
<packageset>
<dirset dir="${src}">
<include name="com.mydomain.*"/>
<exclude name="com.mydomain.excludePackage"/>
</dirset>
</packageset>
</javadoc>
附: - 我经常使用<sourcefiles> 元素,但从未使用过<packageset> 元素。后者在语法上可能并不准确。
【讨论】:
当然,当你“生成Javadoc”时,你可以选择这个过程涉及的包,排除其他的包
alt text http://www.filigris.com/products/docflex_javadoc/images/eclipse_javadoc_1.png
(这里的图是用其他工具生成的javadoc,不过大意不变)
【讨论】:
您可以在 Java 中使用 doxygen。我不知道有任何工具可以用 Javadoc 做你想做的事情。
超级包应该会出现在 JDK 7 中,我相信它可以解决这个问题:http://blogs.oracle.com/andreas/entry/superpackages_in_jsr_294
【讨论】: