弃用: javadoc2
任务只是指向 javadoc
任务,它是为了向后兼容而存在的。由于此任务将在未来版本中删除,强烈建议您使用 javadoc 代替。
使用 javadoc 工具生成代码文档。
源代码目录将被递归扫描以查找要处理的 Java 源代码文件,但只有那些匹配包含规则且不匹配排除规则的文件才会传递给 javadoc 工具。这允许使用通配符在包名称之间进行选择,从而减少冗长并降低随着时间的推移而产生的管理成本。但是,此任务不像 javac 任务那样具有“已更改”文件的概念。这意味着每次运行此任务时都会处理所有包。但是,通常情况下,此任务的使用频率要低得多。
注意: 由于 javadoc 调用 System.exit()
,因此 javadoc 无法在与 Apache Ant 相同的 JVM 中运行,否则会破坏功能。出于这个原因,此任务始终会派生 JVM。由于 javadoc 通常是一个重量级应用程序,并且调用频率很低,因此这种开销并不重要。
注意: packagelist 属性允许您在 Ant 文件之外指定要记录的包列表。将所有内容包含在 build.xml
文件中是一个更好的做法。添加此选项是为了更容易地从常规 makefile 迁移,您将在其中使用此选项的 javadoc。在 packagelist 中列出的包不会被检查,因此即使某些包丢失或损坏,任务也会执行。如果您希望从现有的 makefile 转换,请使用此选项。一旦一切正常运行,您应该切换到常规表示法。
注意: 当为包含注释的类生成 JavaDocs 时,您可能会收到 java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl
。这是由于 bug 6442982。原因是 javadoc 无法找到所用注释的实现。解决方法是使用 classpath、classpathref 属性或嵌套的 <classpath>
元素,将包含这些实现的 jar(如 JAXBs @XmlType
等)提供给 <javadoc>
。
注意: 运行 javadoc 时遇到的许多问题都源于命令行过长,即使错误消息没有给出任何提示表明这可能是问题所在。如果您遇到此任务的问题,请尝试首先将 useexternalfile 属性设置为 true
。
如果您使用多种方法来指定 javadoc 应该在哪里查找源代码,则结果将是所有指定文档的并集。例如,如果您指定 sourcepath 属性以及指向同一目录的嵌套 packageset
,则您的 excludepackagenames 属性将不会有任何效果,除非它与 packageset
的 exclude 模式一致(反之亦然)。
属性 | 描述 | 必需 |
---|---|---|
sourcepath | 指定在哪里查找源代码文件 | 至少四个中的一个或嵌套的 <sourcepath> 、<fileset> 、module 或 <packageset> |
sourcepathref | 通过 引用 到在其他地方定义的 sourcepath 来指定在哪里查找源代码文件。 | |
sourcefiles | 逗号分隔的源代码文件列表,另请参见嵌套的 source 元素。 |
|
modulenames | 逗号分隔的模块名称列表,另请参见嵌套的 module 元素。自 Ant 1.10.6 起 |
|
destdir | 输出文件的目标目录 | 是,除非已指定 doclet。 |
maxmemory | 分配给 javadoc JVM 的最大内存量 | 否 |
packagenames | 逗号分隔的包文件列表(带终止通配符),另请参见嵌套的 package 元素。 |
否 |
packageList | 包含要处理的包的文件的名称 | 否 |
classpath | 指定在哪里查找用户类文件 | 否 |
Bootclasspath | 覆盖引导类加载器加载的类文件的路径 | 否 |
classpathref | 通过 引用 到在其他地方定义的 classpath 来指定在哪里查找用户类文件。 | 否 |
bootclasspathref | 通过 引用 到在其他地方定义的 bootclasspath 来覆盖引导类加载器加载的类文件的路径。 | 否 |
Extdirs | 覆盖已安装扩展的路径 | 否 |
Overview | 从 HTML 文件读取概述文档 | 否 |
access | 访问模式:public、 protected、 package或 private之一 |
否;默认值为 protected |
Public | 仅显示公共类和成员 | 否 |
Protected | 显示受保护/公共类和成员(默认) | 否 |
Package | 显示包/受保护/公共类和成员 | 否 |
Private | 显示所有类和成员 | 否 |
Old | 使用 JDK 1.1 模拟 doclet 生成输出。 注意: 除非您使用的是预 jdk 1.4 外部 javadoc,否则此属性无效。 |
否 |
Verbose | 输出有关 javadoc 正在执行的操作的消息 | 否 |
Locale | 要使用的区域设置,例如 en_US或 en_US_WIN |
否 |
Encoding | 源代码文件编码名称 | 否 |
Version | 包含 @version 段落 |
否 |
Use | 创建类和包使用页面 | 否 |
Author | 包含 @author 段落 |
否 |
Splitindex | 将索引拆分为每个字母一个文件 | 否 |
Windowtitle | 文档的浏览器窗口标题(文本) | 否 |
Doctitle | 包含包索引(第一个)页面的标题(HTML 代码) | 否 |
Header | 包含每个页面的页眉文本(HTML 代码) | 否 |
Footer | 包含每个页面的页脚文本(HTML 代码) | 否 |
bottom | 包含每个页面的底部文本(HTML 代码) | 否 |
link | 创建指向给定 URL 的 javadoc 输出的链接,另请参见嵌套的 link 元素。 |
否 |
linkoffline | 通过指定值 url alt-url(以空格作为分隔符)来链接到 url 上的文档,使用 alt-url 上的包列表。嵌套 link 元素的简写形式,其中 offline=true。 |
否 |
group | 将指定的包分组到概述页面中。格式如 下面 所述,另请参见嵌套的 group 元素。 |
否 |
nodeprecated | 不包含 @deprecated 信息 |
否 |
nodeprecatedlist | 不生成弃用列表 | 否 |
notree | 不生成类层次结构 | 否 |
noindex | 不生成索引 | 否 |
nohelp | 不生成帮助链接 | 否 |
nonavbar | 不生成导航栏 | 否 |
serialwarn | 生成有关 @serial 标记的警告 |
否 |
helpfile | 指定要使用的 HTML 帮助文件 | 否 |
stylesheetfile | 指定要使用的 CSS 样式表 | 否 |
charset | 用于跨平台查看生成的文档的字符集 | 否 |
docencoding | 输出文件编码名称 | 否 |
doclet | 指定用于生成文档的 doclet 的类文件,另请参见嵌套的 doclet 元素。 |
否 |
docletpath | 指定使用 -doclet 选项指定的 doclet 类文件的路径。 | 否 |
docletpathref | 通过 引用 到在其他地方定义的路径来指定使用 -doclet 选项指定的 doclet 类文件的路径。 | 否 |
additionalparam | 允许您向 javadoc 命令行添加其他参数。对 doclet 很有用。包含空格的参数需要用 " 引用,另请参见嵌套的 arg 元素。 |
否 |
failonerror | 如果命令以非 0的返回代码退出,则停止构建过程。 |
否 |
failonwarning | 如果发出警告,则停止构建过程,即如果 javadoc 的输出包含单词 warning。自 Ant 1.9.4 起 |
否 |
excludepackagenames | 逗号分隔的包列表,您不希望为其生成文档,另请参见嵌套的 excludepackage 元素。 |
否 |
defaultexcludes | 指示是否应使用默认排除项 (yes|no)。 |
否;默认值为 yes |
useexternalfile | 指示是否应将 srcfiles 中指定或作为嵌套 source 元素指定的源代码文件名写入临时文件以缩短命令行。也适用于通过 packagenames 属性或嵌套 package 元素指定的包名称。自 Ant 1.7.0 起,也适用于所有其他命令行选项。(yes|no)。 如果启用,则文件将写入 临时目录。 |
否;默认值为 no |
source | 启用 javadoc 处理 Java 语言功能。将其设置为 1.4以记录使用 javac -source 1.4 等编译的代码。 |
否;默认值可以使用神奇的 ant.build.javac.source 属性提供。 |
linksource | 生成指向源代码文件的超链接。自 Ant 1.6 起。(yes|no)。 |
否;默认值为 no |
breakiterator | 使用新的断词器算法。自 Ant 1.6 起。(yes|no)。 |
否;默认值为 no |
noqualifier | 启用 -noqualifier 参数,必须为 all或以冒号分隔的包列表。自 Ant 1.6 起。 |
否 |
includenosourcepackages | 如果设置为 true,则不包含 Java 源代码但包含 package.html 的包也将被记录。自 Ant 1.6.3 起。 |
否;默认值为 false |
executable | 指定要使用的特定 javadoc 可执行文件,以代替默认二进制文件(在与 Ant 运行的相同 JDK 中找到)。自 Ant 1.6.3 起。注意:您有责任确保此命令支持您希望使用的属性。 | 否 |
docfilessubdirs | 启用 doc-files 子目录的深度复制。自 Ant 1.8.0 起。 | 否;默认值为 false |
excludedocfilessubdir | 如果 docfilessubdirs 为 true,则要排除的 doc-files 子目录的冒号分隔列表。自 Ant 1.8.0 起。 | 否 |
postProcessGeneratedJavadocs | 是否对生成的 javadoc 进行后处理以减轻 CVE-2013-1571。自 Ant 1.9.2 起 在 Java 7 更新 25 之前的 Oracle JDK 生成的 javadoc 中存在一个可能的框架注入攻击 (详细信息)。当此标志设置为 true时,Ant 将检查文档是否容易受到攻击,并尝试修复它们。 |
否;默认值为 true |
modulesourcepath | 指定在哪里查找模块源代码文件自 Ant 1.10.6 起 | 否 |
modulesourcepathref | 通过 引用 到在其他地方定义的 PATH 来指定在哪里查找模块源代码文件。自 Ant 1.10.6 起 | 否 |
modulepath | 指定在哪里查找模块文件自 Ant 1.10.6 起 | 否 |
modulepathref | 通过 引用 到在其他地方定义的 PATH 来指定在哪里查找模块文件。自 Ant 1.10.6 起 | 否 |
参数以逗号分隔。每个单个参数都是 2 个以空格分隔的字符串,第一个是组的标题,第二个是以冒号分隔的包列表。
如果您需要指定多个组,或者组的标题包含逗号或空格字符,则强烈建议使用 嵌套的 group
元素。
例如
group="XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*"
一个 DirSet。所有包含 Java 源文件的匹配目录将作为包名传递给 javadoc。包名是通过将目录分隔符转换为点来从目录名创建的。Ant 假设 packageset
的基目录指向包层次结构的根目录。
任务的 packagenames、excludepackagenames 和 defaultexcludes 属性对嵌套的 <packageset>
元素没有影响。
一个 FileSet。所有匹配的文件将作为源文件传递给 javadoc。Ant 会自动将包含模式 **/*.java(如果 includenosourcepackages 为 true
,则为 **/package.html)添加到这些文件集中。
嵌套文件集可用于记录默认包中的源代码,或者如果您想从文档中排除某些文件。如果您想记录所有源文件并且不使用默认包,则应使用 packageset
,因为这会提高 javadoc 的性能。
任务的 packagenames、excludepackagenames 和 defaultexcludes 属性对嵌套的 <fileset>
元素没有影响。
用于任意基于文件系统的 资源集合 的容器。所有包含在任何嵌套集合(包括嵌套文件集、文件列表或路径)中的文件将作为源文件传递给 javadoc。
与 packagenames 给出的列表中的一个条目相同。
属性 | 描述 | 必需 |
---|---|---|
name | 包名(可以是通配符) | 是 |
与 excludepackagenames 给出的列表中的一个条目相同。
package
相同。自 Ant 1.10.6 起
与 modulenames
给出的列表中的一个条目相同。
属性 | 描述 | 必需 |
---|---|---|
name | 模块名 | 是 |
与 sourcefiles 给出的列表中的一个条目相同。
属性 | 描述 | 必需 |
---|---|---|
file | 要记录的源文件 | 是 |
与 doctitle 属性相同,但您可以通过这种方式在元素内嵌套文本。
如果嵌套文本包含换行符,则必须使用 useexternalfile 属性并将其设置为 true
。
类似于 <doctitle>
。
类似于 <doctitle>
。
类似于 <doctitle>
。
在给定 URL 处创建指向 javadoc 输出的链接。这与 link 和 linkoffline 属性的作用相同。您可以使用任一语法(或同时使用两者),但使用嵌套元素,您可以轻松地指定参数的多个出现。
属性 | 描述 | 必需 |
---|---|---|
href | 您要链接到的外部文档的 URL。这可以是绝对 URL 或相对文件名。 | 是 |
offline | true如果此链接在生成文档时无法在线访问 |
否 |
packagelistLoc | 包含外部文档的 package-list 文件的目录的位置 | 如果 offline 属性为 true,则为两者之一 |
packagelistURL | 包含外部文档的 package-list 文件的目录的 URL | |
resolveLink | 如果 link 属性是相对文件名,Ant 将首先尝试在当前项目的 basedir 相对位置找到该文件,如果找到该文件,则使用 link 属性的绝对 URL,否则它将按原样将文件名传递给 javadoc 命令。 | 否;默认值为 false |
将概述页面上的包分隔成您指定的任何组,每个组一个表。这与 group 属性的作用相同。您可以使用任一语法(或同时使用两者),但使用嵌套元素,您可以轻松地指定参数的多个出现。
属性 | 描述 | 必需 |
---|---|---|
title | 组的标题 | 是,除非给出嵌套的 <title> |
packages | 要包含在该组中的包列表。多个包用 :分隔。 |
是,除非给出嵌套的 <package> |
标题可以指定为具有文本内容的嵌套 <title>
元素,并且包可以列出为嵌套的 <package>
元素,与主任务相同。
doclet 嵌套元素用于指定 javadoc 将用于处理输入源文件的 doclet。许多标准 javadoc 参数实际上是标准 doclet 的参数。如果这些参数在 javadoc
任务的属性中指定,则它们将传递给在 <doclet>
嵌套元素中指定的 doclet。因此,只有在这些属性可以被使用的 doclet 解释时,才应指定这些属性。
如果 doclet 需要其他参数,则可以在 <doclet>
元素内的 <param>
元素中指定这些参数。这些参数仅限于简单的字符串。下面显示了 doclet
元素的一个示例用法
<javadoc ... > <doclet name="theDoclet" path="path/to/theDoclet"> <param name="-foo" value="foovalue"/> <param name="-bar" value="barvalue"/> </doclet> </javadoc>
如果您想使用嵌套的 tag
元素指定标准标签,因为您想确定标签的输出顺序,则不能为这些标签设置 description 属性。
属性 | 描述 | 必需 |
---|---|---|
name | 标签的名称(例如 todo) |
是,除非指定了 dir 属性 |
description | 标签的描述(例如 To do:) |
否,javadoc 可执行文件将选择一个默认值,如果未指定此值 |
enabled | 标签是否启用 | 否;默认值为 true |
scope | 标签的范围——可以使用它的元素。这是一个逗号分隔的列表,其中包含一些元素:overview、 packages、 types、 constructors、 methods、 fields或默认值 all。 |
否;默认为 all |
dir | 如果指定了此属性,则此元素将表现为一个隐式的 fileset。此文件集包含的文件应在单独的行上包含每个标签定义,如 Javadoc 参考指南 中所述ejb.bean:t:XDoclet EJB Tag todo:a:To Do注意:Javadoc 参考指南在定义的描述部分周围使用双引号。当在文件中使用时,这将不起作用,因为在传递给 javadoc 程序时,定义将再次被引用。 注意:如果指定了此属性,则此元素中的所有其他属性将被忽略。 |
否 |
taglet 嵌套元素用于指定除 默认 taglet 之外的自定义 taglet。
属性 | 描述 | 必需 |
---|---|---|
name | taglet 类的名称(例如 com.sun.tools.doclets.ToDoTaglet ) |
是 |
path | 指定 taglet 类搜索路径的路径(例如 /home/taglets)。路径也可以通过嵌套的 <path> 元素指定 |
否 |
Javadoc
的 sourcepath、classpath、bootclasspath、modulepath 和 modulesourcepath 属性是 PATH 类结构,也可以通过嵌套的 sourcepath、classpath、bootclasspath、modulepath 和 modulesourcepath 元素分别设置。
自 Ant 1.6 起
使用嵌套的 <arg>
指定其他参数。请参阅 命令行参数。
<javadoc packagenames="com.dummy.test.*" sourcepath="src" excludepackagenames="com.dummy.test.doc-files.*" defaultexcludes="yes" destdir="docs/api" author="true" version="true" use="true" windowtitle="Test API"> <doctitle><![CDATA[<h1>Test</h1>]]></doctitle> <bottom><![CDATA[<i>Copyright © 2000 Dummy Corp. All Rights Reserved.</i>]]></bottom> <tag name="todo" scope="all" description="To do:"/> <group title="Group 1 Packages" packages="com.dummy.test.a*"/> <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*"/> <link offline="true" href="https://docs.oracle.com/javase/8/docs/api/" packagelistLoc="C:\tmp"/> <link href="https://docs.oracle.com/javase/8/docs/api/"/> </javadoc>
与以下相同
<javadoc destdir="docs/api" author="true" version="true" use="true" windowtitle="Test API"> <packageset dir="src" defaultexcludes="yes"> <include name="com/dummy/test/**"/> <exclude name="com/dummy/test/doc-files/**"/> </packageset> <doctitle><![CDATA[<h1>Test</h1>]]></doctitle> <bottom><![CDATA[<i>Copyright © 2000 Dummy Corp. All Rights Reserved.</i>]]></bottom> <tag name="todo" scope="all" description="To do:"/> <group title="Group 1 Packages" packages="com.dummy.test.a*"/> <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*"/> <link offline="true" href="https://docs.oracle.com/javase/8/docs/api/" packagelistLoc="C:\tmp"/> <link href="https://docs.oracle.com/javase/8/docs/api/"/> </javadoc>
或
<javadoc destdir="docs/api" author="true" version="true" use="true" windowtitle="Test API"> <fileset dir="src" defaultexcludes="yes"> <include name="com/dummy/test/**"/> <exclude name="com/dummy/test/doc-files/**"/> </fileset> <doctitle><![CDATA[<h1>Test</h1>]]></doctitle> <bottom><![CDATA[<i>Copyright © 2000 Dummy Corp. All Rights Reserved.</i>]]></bottom> <tag name="todo" scope="all" description="To do:"/> <group title="Group 1 Packages" packages="com.dummy.test.a*"/> <group title="Group 2 Packages" packages="com.dummy.test.b*:com.dummy.test.c*"/> <link offline="true" href="https://docs.oracle.com/javase/8/docs/api/" packagelistLoc="C:\tmp"/> <link href="https://docs.oracle.com/javase/8/docs/api/"/> </javadoc>