Groovydoc

API Documentation:Groovydoc

Generates HTML API documentation for Groovy source, and optionally, Java source.

This task uses Groovy's Groovydoc tool to generate the API documentation. Please note that the Groovydoc tool has some limitations at the moment. The version of the Groovydoc that is used, is the one from the Groovy dependency defined in the build script.

Properties

PropertyDescription
access

The most restrictive access level to include in the Groovydoc.

additionalStylesheets
Incubating

Additional stylesheets to copy into the generated documentation alongside the default stylesheet, preserving each file's name.

classpath

The classpath used to locate classes referenced by the documented sources.

destinationDir
Replaced

The directory to generate the documentation into.

destinationDirectory
Incubating

The directory to generate the documentation into.

docTitle

The title for the package index(first) page. Set to null when there is no document title.

excludes

The set of exclude patterns.

footer

The HTML footer for each page. Set to null when there is no footer.

groovyClasspath

The classpath containing the Groovy library to be used.

header

The HTML header for each page. Set to null when there is no header.

includeAuthor

Whether to include author paragraphs.

includeMainForScripts

Whether to include main method for scripts.

includes

The set of include patterns.

javaLauncher
Incubating

The Java launcher used to start the worker process for generating Groovydoc.

javaVersion
Incubating

The Java language version used when parsing Java source files, e.g. <UNHANDLED-LINK>JavaLanguageVersion#of(int) JavaLanguageVersion.of(17)</UNHANDLED-LINK>.

links

The links to groovydoc/javadoc output at the given URL.

maxMemory
Incubating

The amount of memory allocated to this task. Ex. 512m, 1G

noDeprecatedList
Incubating

Whether to suppress generation of the deprecated-list page (deprecated-list.html) and its nav-bar link.

noHelp
Incubating

Whether to suppress generation of the help page (help-doc.html) and its nav-bar link.

noIndex
Incubating

Whether to suppress generation of the alphabetical index page (index-all.html) and its nav-bar link.

noTimestamp

Whether to include timestamp within hidden comment in generated HTML (Groovy >= 2.4.6).

noVersionStamp

Whether to include version stamp within hidden comment in generated HTML (Groovy >= 2.4.6).

overviewText

Returns a HTML text to be used for overview documentation. Set to null when there is no overview text.

preLanguage
Incubating

The default language id applied to preformatted code blocks in rendered doc comments that carry no class attribute.

processScripts

Whether to process scripts.

showInternal
Incubating

Whether to include members annotated with groovy.transform.Internal (per GEP-17) in the generated documentation.

source

The source for this task, after the include and exclude patterns have been applied. Ignores source files which do not exist.

syntaxHighlighter
Incubating

The client-side syntax highlighter for {@snippet} and fenced Markdown code blocks.

theme
Incubating

The theme lock mode for the generated documentation.

use

Whether to create class and package usage pages.

windowTitle

The browser window title for the documentation. Set to null when there is no window title.

Methods

MethodDescription
exclude(excludeSpec)

Adds an exclude spec. This method may be called multiple times to append new specs.The given closure is passed a FileTreeElement as its parameter. The closure should return true or false. Example:

exclude(excludes)

Adds an Ant style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

exclude(excludes)

Adds an Ant style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

exclude(excludeSpec)

Adds an exclude spec. This method may be called multiple times to append new specs. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

include(includeSpec)

Adds an include spec. This method may be called multiple times to append new specs. The given closure is passed a FileTreeElement as its parameter. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.

include(includes)

Adds an Ant style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.

include(includes)

Adds an Ant style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.

include(includeSpec)

Adds an include spec. This method may be called multiple times to append new specs. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.

link(url, packages)

Add links to groovydoc/javadoc output at the given URL.

source(sources)

Adds some source to this task. The given source objects will be evaluated as per Project.files(java.lang.Object[]).

Script blocks

No script blocks

Property details

The most restrictive access level to include in the Groovydoc.

For example, to include classes and members with package, protected, and public access, use GroovydocAccess.PACKAGE.

Default with groovy plugin:
GroovydocAccess.PROTECTED

ConfigurableFileCollection additionalStylesheets (read-only)

Note: This property is incubating and may change in a future version of Gradle.

Additional stylesheets to copy into the generated documentation alongside the default stylesheet, preserving each file's name.

Only has an effect with Groovy 6.0.0 or later; the stylesheets are silently ignored with earlier Groovy versions.

Default with groovy plugin:
[]

FileCollection classpath

The classpath used to locate classes referenced by the documented sources.

Default with groovy plugin:
sourceSets.main.output + sourceSets.main.compileClasspath

File destinationDir

Note: This property has been replaced by destinationDirectory.

The directory to generate the documentation into.

Default with groovy plugin:
${project.docsDir}/groovydoc

DirectoryProperty destinationDirectory

Note: This property is incubating and may change in a future version of Gradle.

The directory to generate the documentation into.

Default with groovy plugin:
${project.docsDir}/groovydoc

String docTitle

The title for the package index(first) page. Set to null when there is no document title.

Default with groovy plugin:
project.reporting.apiDocTitle

Set<String> excludes

The set of exclude patterns.

Default with groovy plugin:
[]

String footer

The HTML footer for each page. Set to null when there is no footer.

Default with groovy plugin:
null

FileCollection groovyClasspath

The classpath containing the Groovy library to be used.

Default with groovy plugin:
project.configurations.groovy

String header

The HTML header for each page. Set to null when there is no header.

Default with groovy plugin:
null

Property<Boolean> includeAuthor

Whether to include author paragraphs.

Default with groovy plugin:
false

Property<Boolean> includeMainForScripts

Whether to include main method for scripts.

Default with groovy plugin:
true

Set<String> includes

The set of include patterns.

Default with groovy plugin:
[]

Property<JavaLauncher> javaLauncher

Note: This property is incubating and may change in a future version of Gradle.

The Java launcher used to start the worker process for generating Groovydoc.

Default with groovy plugin:
java.toolchain

Note: This property is incubating and may change in a future version of Gradle.

The Java language version used when parsing Java source files, e.g. <UNHANDLED-LINK>JavaLanguageVersion#of(int) JavaLanguageVersion.of(17)</UNHANDLED-LINK>.

Groovydoc uses the JavaParser library to read Java sources; this controls the source level it assumes, which is needed for parsing newer Java language constructs (for example, sealed classes require Java 17). When unset, Groovydoc uses the JavaParser library's own default.

Only has an effect with Groovy 4.0.27 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
null

Set<Link> links

The links to groovydoc/javadoc output at the given URL.

Default with groovy plugin:
[]

Property<String> maxMemory

Note: This property is incubating and may change in a future version of Gradle.

The amount of memory allocated to this task. Ex. 512m, 1G

Default with groovy plugin:
null

Property<Boolean> noDeprecatedList

Note: This property is incubating and may change in a future version of Gradle.

Whether to suppress generation of the deprecated-list page (deprecated-list.html) and its nav-bar link.

Defaults to false. Only has an effect with Groovy 6.0.0 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
false

Note: This property is incubating and may change in a future version of Gradle.

Whether to suppress generation of the help page (help-doc.html) and its nav-bar link.

Defaults to false. Only has an effect with Groovy 6.0.0 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
false

Property<Boolean> noIndex

Note: This property is incubating and may change in a future version of Gradle.

Whether to suppress generation of the alphabetical index page (index-all.html) and its nav-bar link.

Defaults to false. Only has an effect with Groovy 6.0.0 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
false

boolean noTimestamp

Whether to include timestamp within hidden comment in generated HTML (Groovy >= 2.4.6).

Default with groovy plugin:
false

boolean noVersionStamp

Whether to include version stamp within hidden comment in generated HTML (Groovy >= 2.4.6).

Default with groovy plugin:
false

TextResource overviewText

Returns a HTML text to be used for overview documentation. Set to null when there is no overview text.

Default with groovy plugin:
null

Property<String> preLanguage

Note: This property is incubating and may change in a future version of Gradle.

The default language id applied to preformatted code blocks in rendered doc comments that carry no class attribute.

When set (for example, "groovy"), a post-pass adds class="language-xxx" to the opening tag of such blocks, enabling syntax highlighting for legacy doc-comment code blocks without touching source files. Blocks that already carry any class attribute are left alone.

Only has an effect with Groovy 6.0.0 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
null

Property<Boolean> processScripts

Whether to process scripts.

Default with groovy plugin:
true

Property<Boolean> showInternal

Note: This property is incubating and may change in a future version of Gradle.

Whether to include members annotated with groovy.transform.Internal (per GEP-17) in the generated documentation.

Defaults to false, so internal members are hidden. Only has an effect with Groovy 6.0.0 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
false

FileTree source (read-only)

The source for this task, after the include and exclude patterns have been applied. Ignores source files which do not exist.

The PathSensitivity for the sources is configured to be PathSensitivity.ABSOLUTE. If your sources are less strict, please change it accordingly by overriding this method in your subclass.

Default with groovy plugin:
sourceSets.main.groovy

Property<String> syntaxHighlighter

Note: This property is incubating and may change in a future version of Gradle.

The client-side syntax highlighter for {@snippet} and fenced Markdown code blocks.

Valid values are "prism" (bundled) or "none" (default); any other value is treated as "none". Only has an effect with Groovy 6.0.0 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
"none"

Note: This property is incubating and may change in a future version of Gradle.

The theme lock mode for the generated documentation.

  • "auto" (default) — emit a prefers-color-scheme media query so each reader sees their OS preference.
  • "light" — lock the palette to light regardless of OS.
  • "dark" — lock the palette to dark regardless of OS.

Any other value is treated as "auto". Only has an effect with Groovy 6.0.0 or later; the option is silently ignored with earlier Groovy versions.

Default with groovy plugin:
"auto"

boolean use

Whether to create class and package usage pages.

Default with groovy plugin:
false

String windowTitle

The browser window title for the documentation. Set to null when there is no window title.

Default with groovy plugin:
project.reporting.apiDocTitle

Method details

SourceTask exclude(Closure excludeSpec)

Adds an exclude spec. This method may be called multiple times to append new specs.The given closure is passed a FileTreeElement as its parameter. The closure should return true or false. Example:

copySpec {
  from 'source'
  into 'destination'
  //an example of excluding files from certain configuration:
  exclude { it.file in configurations.someConf.files }
}

If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

SourceTask exclude(Iterable<String> excludes)

Adds an Ant style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

SourceTask exclude(String... excludes)

Adds an Ant style exclude pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

SourceTask exclude(Spec<FileTreeElement> excludeSpec)

Adds an exclude spec. This method may be called multiple times to append new specs. If excludes are not provided, then no files will be excluded. If excludes are provided, then files must not match any exclude pattern to be processed.

SourceTask include(Closure includeSpec)

Adds an include spec. This method may be called multiple times to append new specs. The given closure is passed a FileTreeElement as its parameter. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.

SourceTask include(Iterable<String> includes)

Adds an Ant style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.

SourceTask include(String... includes)

Adds an Ant style include pattern. This method may be called multiple times to append new patterns and multiple patterns may be specified in a single call. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns to be processed.

SourceTask include(Spec<FileTreeElement> includeSpec)

Adds an include spec. This method may be called multiple times to append new specs. If includes are not provided, then all files in this container will be included. If includes are provided, then a file must match at least one of the include patterns or specs to be included.

void link(String url, String... packages)

Add links to groovydoc/javadoc output at the given URL.

SourceTask source(Object... sources)

Adds some source to this task. The given source objects will be evaluated as per Project.files(java.lang.Object[]).