Apache Ant TasksJavadoc/Javadoc2Javadoc/Javadoc2DescriptionGenerates code documentation using the javadoc tool. The source directory will be recursively scanned for Java source files to processbut only those matching the inclusion rules, and not matching the exclusions ruleswill be passed to the javadoc tool. Thisallows wildcards to be used to choose between package names, reducing verbosityand management costs over time. This task, however, has no notion of"changed" files, unlike the javac task. This meansall packages will be processed each time this task is run. In general, however,this task is used much less frequently. NOTE: since javadoc calls System.exit(), javadoc cannot be run inside thesame VM as Apache Ant without breaking functionality. For this reason, this taskalways forks the VM. This overhead is not significant since javadoc is normally a heavyapplication and will be called infrequently. NOTE: the packagelist attribute allows you to specify the list of packages todocument outside of the Ant file. It's a much better practice to include everythinginside the build.xml file. This option was added in order to make it easier tomigrate from regular makefiles, where you would use this option of javadoc.The packages listed in packagelist are not checked, so the task performs evenif some packages are missing or broken. Use this option if you wish to convert froman existing makefile. Once things are running you should then switch to the regularnotation. DEPRECATION: the javadoc2 task simply points to the javadoc task and it'sthere for back compatibility reasons. Since this task will be removed in futureversions, you are strongly encouraged to use javadocinstead. In the table below, 1.2 means available if your current Java VM isa 1.2 VM (but not 1.3 or later), 1.4+ for any VM of at least version 1.4, otherwiseany VM of at least version 1.2 is acceptable. JDKs <1.4 are no longer supported.If you specify the executable attribute it is up to youto ensure that this command supports the attributes you wish to use. Note: When generating the JavaDocs for classes which contains annotationsyou maybe get a java.lang.ClassCastException: com.sun.tools.javadoc.ClassDocImpl.This is due bug-6442982. The cause is that JavaDoc cannot find the implementations of used annotations.The workaround is providing the jars with these implementations (like JAXBs @XmlType, ...)to <javadoc> using classpath, classpathref attributes or nested<classpath> element. Note: many problems with running javadoc stem from command lines that have become too long - even though the error message doesn't give the slightest hint this may be the problem. If you encounter problems with the task, try to set the useexternalfile attribute to true first. If you use multiple ways to specify where javadoc should be looking for sources your result will be the union of all specified documentations. If you, e.g., specify a sourcepath attribute and also a nested packageset both pointing at the same directory your excludepackagenames attribute won't have any effect unless it agrees with the exclude patterns of the packageset (and vice versa). Parameters Attribute | Description | Availability | Required | sourcepath | Specify where to find source files | all | At least one of the three or nested <sourcepath> , <fileset> or <packageset> | sourcepathref | Specify where to find source files by reference to a PATH defined elsewhere. | all | sourcefiles | Comma separated list of source files -- see also the nested source element. | all | destdir | Destination directory for output files | all | Yes, unless a doclet has been specified. | maxmemory | Max amount of memory to allocate to the javadoc VM | all | No | packagenames | Comma separated list of package files (with terminating wildcard) -- see also the nested package element. | all | No | packageList | The name of a file containing the packages to process | all | No | classpath | Specify where to find user class files | all | No | Bootclasspath | Override location of class files loaded by the bootstrap class loader | all | No | classpathref | Specify where to find user class files by reference to a PATH defined elsewhere. | all | No | bootclasspathref | Override location of class files loaded by the bootstrap class loader by reference to a PATH defined elsewhere. | all | No | Extdirs | Override location of installed extensions | all | No | Overview | Read overview documentation from HTML file | all | No | access | Access mode: one of public , protected , package , or private | all | No (default protected ) | Public | Show only public classes and members | all | No | Protected | Show protected/public classes and members (default) | all | No | Package | Show package/protected/public classes and members | all | No | Private | Show all classes and members | all | No | Old | Generate output using JDK 1.1 emulating doclet. Note: as of Ant 1.8.0 this attribute doesn't have any effect since the javadoc of Java 1.4 (required by Ant 1.8.0) doesn't support the -1.1 switch anymore. | 1.2 | No | Verbose | Output messages about what Javadoc is doing | all | No | Locale | Locale to be used, e.g. en_US or en_US_WIN | all | No | Encoding | Source file encoding name | all | No | Version | Include @version paragraphs | all | No | Use | Create class and package usage pages | all | No | Author | Include @author paragraphs | all | No | Splitindex | Split index into one file per letter | all | No | Windowtitle | Browser window title for the documentation (text) | all | No | Doctitle | Include title for the package index(first) page (html-code) | all | No | Header | Include header text for each page (html-code) | all | No | Footer | Include footer text for each page (html-code) | all | No | bottom | Include bottom text for each page (html-code) | all | No | link | Create links to javadoc output at the given URL -- see also the nested link element. | all | No | linkoffline | Link to docs at <url> using package list at <url2> - separate the URLs by using a space character -- see also the nested link element. | all | No | group | Group specified packages together in overview page. The format is as described below -- see also the nested group element. | all | No | nodeprecated | Do not include @deprecated information | all | No | nodeprecatedlist | Do not generate deprecated list | all | No | notree | Do not generate class hierarchy | all | No | noindex | Do not generate index | all | No | nohelp | Do not generate help link | all | No | nonavbar | Do not generate navigation bar | all | No | serialwarn | Generate warning about @serial tag | all | No | helpfile | Specifies the HTML help file to use | all | No | stylesheetfile | Specifies the CSS stylesheet to use | all | No | charset | Charset for cross-platform viewing of generated documentation | all | No | docencoding | Output file encoding name | all | No | doclet | Specifies the class file that starts the doclet used in generating the documentation -- see also the nested doclet element. | all | No | docletpath | Specifies the path to the doclet class file that is specified with the -doclet option. | all | No | docletpathref | Specifies the path to the doclet class file that is specified with the -doclet option by reference to a PATH defined elsewhere. | all | No | additionalparam | Lets you add additional parameters to the javadoc command line. Useful for doclets. Parameters containing spaces need to be quoted using " -- see also the nested arg element. | all | No | failonerror | Stop the buildprocess if the command exits with a returncode other than 0. | all | No | excludepackagenames | comma separated list of packages you don't want docs for -- see also the nested excludepackage element. | all | No | defaultexcludes | indicates whether default excludes should be used (yes | no ); default excludes are used when omitted. | all | No | useexternalfile | indicates whether the sourcefile name specified in srcfiles or as nested source elements should be written to a temporary file to make the command line shorter. Also applies to the package names specified via the packagenames attribute or nested package elements. Since Ant 1.7.0, also applies to all the other command line options. (yes | no ). Default is no. | all | No | source | Necessary to enable javadoc to handle assertions present in J2SE v 1.4 source code. Set this to "1.4" to documents code that compiles using "javac -source 1.4" . A default value for this attribute can be provided using the magic ant.build.javac.source property. | 1.4+ | No | linksource | Generate hyperlinks to source files. since Ant 1.6. (yes | no ). Default is no. | 1.4+ | No | breakiterator | Use the new breakiterator algorithm. since Ant 1.6. (yes | no ). Default is no. | 1.4+ | No | noqualifier | Enables the -noqualifier argument - must be all or a colon separated list of packages. since Ant 1.6. | 1.4+ | No | includenosourcepackages | If set to true, packages that don't contain Java source but a package.html will get documented as well. since Ant 1.6.3. | all | No (default is false ) | executable | Specify a particular javadoc executable to use in place of the default binary (found in the same JDK as Ant is running in). since Ant 1.6.3. | all | No | docfilessubdirs | Enables deep-copying of doc-files subdirectories. Defaults to false. since Ant 1.8.0. | 1.4 | No | excludedocfilessubdir | Colon-separated list of doc-files ' subdirectories to exclude if docfilessubdirs is true. since Ant 1.8.0. | 1.4 | No | Format of the group attributeThe arguments are comma-delimited. Each single argument is 2space-delimited strings, where the first one is the group's title andthe second one a colon delimited list of packages. If you need to specify more than one group, or a group whose titlecontains a comma or a space character, using nested group elements is highlyrecommended. E.g.: group="XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*" Parameters specified as nested elementspackagesetA DirSet. All matcheddirectories that contain Java source files will be passed to javadocas package names. Package names are created from the directory namesby translating the directory separator into dots. Ant assumes thebase directory of the packageset points to the root of a packagehierarchy. The packagenames , excludepackagenames anddefaultexcludes attributes of the task have no effect onthe nested <packageset> elements. filesetA FileSet. All matchedfiles will be passed to javadoc as source files. Ant willautomatically add the include pattern **/*.java (and**/package.html if includenosourcepackages is true) tothese filesets. Nested filesets can be used to document sources that are in thedefault package or if you want to exclude certain files fromdocumentation. If you want to document all source files and don't usethe default package, packagesets should be used instead as thisincreases javadocs performance. The packagenames , excludepackagenames anddefaultexcludes attributes of the task have no effect onthe nested <fileset> elements. sourcefilesA container for arbitrary file system based resourcecollections. All files contained in any of the nested collections(this includes nested filesets, filelists or paths) will be passed tojavadoc as source files. packageSame as one entry in the list given by packagenames . Parameters Attribute | Description | Required | name | The package name (may be a wildcard) | Yes | excludepackageSame as one entry in the list given by excludepackagenames . ParametersSame as for package .sourceSame as one entry in the list given by sourcefiles . Parameters Attribute | Description | Required | file | The source file to document | Yes | doctitleSame as the doctitle attribute, but you can nest textinside the element this way. If the nested text contains line breaks, you must use the useexternalfile attribute and set it to true. headerSimilar to <doctitle> . footerSimilar to <doctitle> . bottomSimilar to <doctitle> . linkCreate link to javadoc output at the given URL. This performs thesame role as the link and linkoffline attributes. You can use eithersyntax (or both at once), but with the nested elements you can easilyspecify multiple occurrences of the arguments. Parameters Attribute | Description | Required | href | The URL for the external documentation you wish to link to. This can be an absolute URL, or a relative file name. | Yes | offline | True if this link is not available online at the time of generating the documentation | No | packagelistLoc | The location to the directory containing the package-list file for the external documentation | One of the two if the offline attribute is true | packagelistURL | The URL of the the directory containing the package-list file for the external documentation | resolveLink | If the link attribute is a relative file name, Ant will first try to locate the file relative to the current project's basedir and if it finds a file there use an absolute URL for the link attribute, otherwise it will pass the file name verbatim to the javadoc command. | No, default is false. | groupSeparates packages on the overview page into whatever groups youspecify, one group per table. This performs the same role as the groupattribute. You can use either syntax (or both at once), but with thenested elements you can easily specify multiple occurrences of thearguments. Parameters Attribute | Description | Required | title | Title of the group | Yes, unless nested <title> given | packages | List of packages to include in that group. Multiple packages are separated with ':'. | Yes, unless nested <package> s given | The title may be specified as a nested <title> elementwith text contents, and the packages may be listed with nested<package> elements as for the main task. docletThe doclet nested element is used to specify thedocletthat javadoc will use to process the input source files. A number of the standard javadoc argumentsare actually arguments of the standard doclet. If these are specified in the javadoctask's attributes, they will be passed to the doclet specified in the<doclet> nested element. Such attributes should only be specified,therefore, if they can be interpreted by the doclet in use. If the doclet requires additional parameters, these can be specified with<param> elements within the <doclet> element. These parameters are restricted to simple strings. An example usageof the doclet element is shown below: <javadoc ... > <doclet name="theDoclet" path="path/to/theDoclet"> <param name="-foo" value="foovalue"/> <param name="-bar" value="barvalue"/> </doclet> </javadoc> tagIf you want to specify a standard tag using a nested tag elementbecause you want to determine the order the tags are output, you mustnot set the description attribute for those tags. Parameters Attribute | Description | Required | name | Name of the tag (e.g. todo ) | Yes, unless the dir attribute is specified. | description | Description for tag (e.g. To do: ) | No, the javadoc executable will pick a default if this is not specified. | enabled | Whether or not the tag is enabled (defaults to true ) | No | scope | Scope for the tag - the elements in which it can be used. This is a comma separated list of some of the elements: overview , packages , types , constructors , methods , fields or the default, all . | No | dir | If this attribute is specified, this element will behave as an implicit fileset. The files included by this fileset should contain each tag definition on a separate line, as described in the Javadoc reference guide: ejb.bean:t:XDoclet EJB Tagtodo:a:To Do Note: The Javadoc reference quide has double quotes aroundthe description part of the definition. This will not work when used ina file, as the definition is quoted again when given tothe javadoc program. Note: If this attribute is specified, all the other attributes in this element will be ignored. | No | tagletThe taglet nested element is used to specify custom taglets. Parameters Attribute | Description | Required | name | The name of the taglet class (e.g. com.sun.tools.doclets.ToDoTaglet ) | Yes | path | A path specifying the search path for the taglet class (e.g. /home/taglets ). The path may also be specified by a nested <path> element | No | sourcepath, classpath and bootclasspathJavadoc 's sourcepath, classpath andbootclasspath attributes are PATH likestructure and can also be set via nested sourcepath,classpath and bootclasspath elementsrespectively.
argUse nested <arg> to specify additionalarguments. See Command linearguments. Since Ant 1.6 Example <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="http://download.oracle.com/javase/6/docs/api/" packagelistLoc="C:mp"/> <link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/> </javadoc> is the same as <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="http://download.oracle.com/javase/6/docs/api/" packagelistLoc="C:mp"/> <link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/> </javadoc> or <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="http://download.oracle.com/javase/6/docs/api/" packagelistLoc="C:mp"/> <link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/> </javadoc> |