如果你能分开公众公众来自内部公众按包划分类(即,有一些包包含库用户所需的所有公共类,并且没有其他公共类),然后仅在这些包上运行 Javadoc。
Javadoc 的工作原理是提供要使用的包的列表(以及用于查找这些包的源路径),并仅生成这些包的文档。
对于 Ant 来说有点复杂,因为使用 Ant 的最简单方法javadoc
任务,使用<packageset>
,默认情况下采用给定目录中的所有包。
这是一个只有一个包的示例:
<target name="javadoc">
<javadoc destdir="${javadoc}"
encoding="US-ASCII"
charset="UTF-8"
docencoding="UTF-8"
use="yes"
windowtitle="JSch API"
sourcepath="${src}"
>
<arg value="-notimestamp" />
<package name="com.jcraft.jsch" />
<doctitle>JSch – Java Secure Channel ${version}</doctitle>
<bottom>This is an inofficial Javadoc created by Paŭlo Ebermann.
Have a look at the <a href="http://www.jcraft.com/jsch/">official homepage</a>.
</bottom>
<link href="http://download.oracle.com/javase/6/docs/api/" />
</javadoc>
</target>
You can 查看结果 http://epaul.github.com/jsch-documentation/javadoc/,但实际上这不是一个很好的例子,因为这里的主包包含很多类not供消费者使用。
如果你处于像 JSch 这样的情况,即你无法将公众公众来自内部公众按包分类,因为您有包含公共类型和私有类型的包,所以仍然有一种方法可以做到这一点。 Javadoc 还支持不提供包名称,而是提供单个文件名作为参数。由于我刚刚花了一些时间弄清楚如何使用 ant 执行此操作,因此生成的 ant 目标代码如下:
<target name="simple.javadoc">
<javadoc destdir="${simple.javadoc}"
encoding="US-ASCII"
charset="UTF-8"
docencoding="UTF-8"
use="yes"
windowtitle="simple JSch API"
excludepackagenames="*"
sourcepath="${src}"
>
<arg value="-notimestamp" />
<sourcefiles>
<resourcelist encoding="US-ASCII">
<file file="simpleclasses.list" />
</resourcelist>
</sourcefiles>
<doctitle>JSch – Java Secure Channel ${version} (simplified version)</doctitle>
<bottom>This is a simplified version of the <a href="http://epaul.github.com/jsch-documentation/javadoc/">inofficial Javadoc</a> created by Paŭlo Ebermann.
Have a look at the <a href="http://www.jcraft.com/jsch/">official homepage</a>.
</bottom>
<link href="http://download.oracle.com/javase/6/docs/api/" />
</javadoc>
</target>
源文件列于简单类列表 https://github.com/ePaul/jsch-documentation/blob/master/simpleclasses.list在这里,使用resourcelist
。我认为一个简单的文件集includesfile=...
也会起作用(而且它还允许使用模式而不是简单的列表)。
我不得不搜索很长一段时间的重要一点:如果你给出一个sourcepath
属性并且不给出任何packagenames
属性或<package>
子元素,除了提到的文件之外,ant 将自动提供“所有包”默认值,这会导致不排除任何内容。 (我们想要sourcepath
这里允许从未记录的类继承文档。)因此,我们还必须提供excludepackagenames="*"
,这样现在只有<sourcefiles>
元素定义将记录的内容。
结果现在看起来好多了 http://epaul.github.com/jsch-documentation/simple.javadoc/,谢谢你的提问。