Package org.apache.maven.plugins.javadoc
Class AbstractJavadocMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.javadoc.AbstractJavadocMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
JavadocJarMojo,JavadocReport,ResourcesBundleMojo
public abstract class AbstractJavadocMojo
extends org.apache.maven.plugin.AbstractMojo
Base class with the majority of Javadoc functionality.
- Since:
- 2.0
- Author:
- Brett Porter, Vincent Siveton
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final StringTheargfilefile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @filesprotected static final StringThe Javadoc script file name whendebugparameter is on, i.e.protected booleanSpecifies if the build will fail if there are errors during javadoc execution or not.protected booleanSpecifies if the build will fail if there are warning during javadoc execution or not.protected static final StringThefilesfile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @filesstatic final StringClassifier used in the name of the javadoc-options XML file, and in the resources bundle artifact that gets attached to the project.Creates links to existing javadoc-generated documentation of external referenced classes.protected org.apache.maven.plugin.MojoExecutionprotected static final StringTheoptionsfile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @filesprotected FileThe shared output directory for the report where Javadoc saves the generated HTML files.protected StringTimestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).protected static final StringThepackagesfile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @filesprotected org.apache.maven.project.MavenProjectThe Maven Project Objectprotected List<org.apache.maven.project.MavenProject> The projects in the reactor for aggregation report.protected org.apache.maven.execution.MavenSessionThe current build session instance.protected org.apache.maven.doxia.tools.SiteToolSiteTool.protected booleanSpecifies whether the Javadoc generation should be skipped.static final StringClassifier used in the name of the javadoc-options XML file, and in the resources bundle artifact that gets attached to the project.protected booleanSpecifies to use the options provided by the Standard Doclet for a custom doclet.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
ConstructorsConstructorDescriptionAbstractJavadocMojo(org.apache.maven.doxia.tools.SiteTool siteTool, org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager, ResourceResolver resourceResolver, org.eclipse.aether.RepositorySystem repoSystem, org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager, org.apache.maven.project.ProjectBuilder mavenProjectBuilder, org.apache.maven.toolchain.ToolchainManager toolchainManager) -
Method Summary
Modifier and TypeMethodDescriptionprotected final JavadocOptionsGenerate a javadoc-options XML file, for either bundling with a javadoc-resources artifact OR supplying to a distro module in a includeDependencySources configuration, so the javadoc options from this execution can be reconstructed and merged in the distro build.protected booleancanGenerateReport(Map<Path, Collection<String>> files) Method that indicates whether the javadoc can be generated or not.protected SourceResolverConfigOverride this method to customize the configuration for resolving dependency sources.protected abstract voidvoidexecute()protected voidexecuteReport(Locale unusedLocale) The package documentation details the Javadoc Options used by this Plugin.protected voidfailOnError(String prefix, Exception e) protected StringOverride this if you need to provide a bundle attachment classifier, as in the case of test javadocs.protected FilegetClassesFile(org.apache.maven.project.MavenProject project) protected final OfflineLinkprotected org.eclipse.aether.util.filter.ScopeDependencyFilterprotected final Collection<JavadocModule> Resolve dependency sources so they can be included directly in the javadoc process.protected Stringprotected StringgetExecutionProjectSourceRoots(org.apache.maven.project.MavenProject p) protected Map<Path, Collection<String>> getFiles(Collection<Path> sourcePaths) Method to get the files on the specified source pathsprotected Fileprotected final FileConstruct the output file for the generated javadoc-options XML file, after creating the javadocOptionsDir if necessary.protected Stringprotected Fileprotected StringMethod that returns the plugin report output directory where the generated Javadoc report will be put beneathgetOutputDirectory()/AbstractMavenReport.getReportOutputDirectory().protected org.apache.maven.project.MavenProjectgetProjectBuildOutputDirs(org.apache.maven.project.MavenProject p) getProjectSourceRoots(org.apache.maven.project.MavenProject p) protected List<org.apache.maven.project.MavenProject> protected Collection<JavadocModule> Method to get the source paths per reactorProject.protected final org.apache.maven.toolchain.Toolchainprotected Stringprotected booleanIndicates whether this goal is flagged with@aggregator.protected booleanprotected booleanisSkippedJavadoc(org.apache.maven.project.MavenProject mavenProject) protected booleanisSkippedModule(org.apache.maven.project.MavenProject mavenProject) protected booleanisTest()Indicates whether this goal generates documentation for theJava Test code.protected booleanisValidJavadocLink(String link, boolean detecting) protected voidLogs an error with throwable content only if in debug.org.apache.maven.artifact.ArtifactresolveDependency(org.apache.maven.model.Dependency dependency) protected final voidverifyRemovedParameter(String paramName) Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER
Classifier used in the name of the javadoc-options XML file, and in the resources bundle artifact that gets attached to the project. This one is used for non-test javadocs.- Since:
- 2.7
- See Also:
-
TEST_JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER
Classifier used in the name of the javadoc-options XML file, and in the resources bundle artifact that gets attached to the project. This one is used for test-javadocs.- Since:
- 2.7
- See Also:
-
DEBUG_JAVADOC_SCRIPT_NAME
The Javadoc script file name whendebugparameter is on, i.e. javadoc.bat or javadoc.sh -
OPTIONS_FILE_NAME
Theoptionsfile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @files- See Also:
-
PACKAGES_FILE_NAME
Thepackagesfile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @files- See Also:
-
ARGFILE_FILE_NAME
Theargfilefile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @files- See Also:
-
FILES_FILE_NAME
Thefilesfile name in the output directory when calling:javadoc.exe(or .sh) @options @packages | @argfile | @files- See Also:
-
siteTool
protected org.apache.maven.doxia.tools.SiteTool siteToolSiteTool. -
session
@Parameter(defaultValue="${session}", readonly=true, required=true) protected org.apache.maven.execution.MavenSession sessionThe current build session instance. This is used for toolchain manager API calls. -
project
@Parameter(defaultValue="${project}", readonly=true, required=true) protected org.apache.maven.project.MavenProject projectThe Maven Project Object -
mojoExecution
@Parameter(defaultValue="${mojoExecution}", readonly=true, required=true) protected org.apache.maven.plugin.MojoExecution mojoExecution -
reactorProjects
@Parameter(defaultValue="${reactorProjects}", required=true, readonly=true) protected List<org.apache.maven.project.MavenProject> reactorProjectsThe projects in the reactor for aggregation report. -
skip
@Parameter(property="maven.javadoc.skip", defaultValue="false") protected boolean skipSpecifies whether the Javadoc generation should be skipped.- Since:
- 2.5
-
failOnError
@Parameter(property="maven.javadoc.failOnError", defaultValue="true") protected boolean failOnErrorSpecifies if the build will fail if there are errors during javadoc execution or not.- Since:
- 2.5
-
failOnWarnings
@Parameter(property="maven.javadoc.failOnWarnings", defaultValue="false") protected boolean failOnWarningsSpecifies if the build will fail if there are warning during javadoc execution or not.- Since:
- 3.0.1
-
useStandardDocletOptions
@Parameter(property="useStandardDocletOptions", defaultValue="true") protected boolean useStandardDocletOptionsSpecifies to use the options provided by the Standard Doclet for a custom doclet.
Example:<docletArtifacts> <docletArtifact> <groupId>com.sun.tools.doclets</groupId> <artifactId>doccheck</artifactId> <version>1.2b2</version> </docletArtifact> </docletArtifacts> <useStandardDocletOptions>true</useStandardDocletOptions>- Since:
- 2.5
-
links
Creates links to existing javadoc-generated documentation of external referenced classes.Notes:
- This option is ignored if the plugin is run in offline mode using the
<offline>setting or by specifying-o, --offlineor-Dmaven.javadoc.offline=trueon the command line. - All given links should have a fetchable
/package-listor/element-list(since Java 10). For instance:<links> <link>https://docs.oracle.com/en/java/javase/17/docs/api</link> </links>
will be used becausehttps://docs.oracle.com/en/java/javase/17/docs/api/element-listexists. - If
detectLinksis defined, the links between the project dependencies are automatically added. - If
detectJavaApiLinkis defined, a Java API link, based on the Java version of the project's sources, will be added automatically.
- See Also:
- This option is ignored if the plugin is run in offline mode using the
-
outputDirectory
@Parameter(defaultValue="${project.build.directory}/reports", required=true) protected File outputDirectoryThe shared output directory for the report where Javadoc saves the generated HTML files. Note that this parameter is only evaluated if the goal is run directly from the command line. If the goal is run indirectly as part of a site generation, the shared output directory configured in the Maven Site Plugin is used instead.- See Also:
-
outputTimestamp
Timestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).- Since:
- 3.2.0
-
-
Constructor Details
-
AbstractJavadocMojo
public AbstractJavadocMojo(org.apache.maven.doxia.tools.SiteTool siteTool, org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager, ResourceResolver resourceResolver, org.eclipse.aether.RepositorySystem repoSystem, org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager, org.apache.maven.project.ProjectBuilder mavenProjectBuilder, org.apache.maven.toolchain.ToolchainManager toolchainManager)
-
-
Method Details
-
isAggregator
protected boolean isAggregator()Indicates whether this goal is flagged with@aggregator.- Returns:
trueif the goal is designed as an aggregator,falseotherwise.- See Also:
-
isTest
protected boolean isTest()Indicates whether this goal generates documentation for theJava Test code.- Returns:
trueif the goal generates Test Javadocs,falseotherwise.
-
getOutputDirectory
-
getPluginReportOutputDirectory
Method that returns the plugin report output directory where the generated Javadoc report will be put beneathgetOutputDirectory()/AbstractMavenReport.getReportOutputDirectory().- Returns:
- a String that contains the target directory
-
getProject
protected org.apache.maven.project.MavenProject getProject() -
getProjectBuildOutputDirs
- Parameters:
p- not null maven project- Returns:
- the list of directories where compiled classes are placed for the given project. These dirs are added to the javadoc classpath.
-
getClassesFile
- Parameters:
project- the project in which to find a classes file- Returns:
- null, the attached artifact file, or outputDirectory.
-
getProjectSourceRoots
- Parameters:
p- not null maven project- Returns:
- the list of source paths for the given project
-
getExecutionProjectSourceRoots
- Parameters:
p- not null maven project- Returns:
- the list of source paths for the execution project of the given project
-
getJavadocDirectory
- Returns:
- the current javadoc directory
-
getDoclint
- Returns:
- the doclint specific checks configuration
-
getDoctitle
- Returns:
- the title to be placed near the top of the overview summary file
-
getOverview
- Returns:
- the overview documentation file from the user parameter or from the
javadocdirectory
-
getWindowtitle
- Returns:
- the title to be placed in the HTML title tag
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoExecutionExceptionorg.apache.maven.plugin.MojoFailureException
-
doExecute
protected abstract void doExecute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoExecutionExceptionorg.apache.maven.plugin.MojoFailureException
-
verifyRemovedParameter
-
executeReport
protected void executeReport(Locale unusedLocale) throws org.apache.maven.reporting.MavenReportException The package documentation details the Javadoc Options used by this Plugin.- Parameters:
unusedLocale- the wanted locale (actually unused).- Throws:
org.apache.maven.reporting.MavenReportException- if any
-
getFiles
protected Map<Path,Collection<String>> getFiles(Collection<Path> sourcePaths) throws org.apache.maven.reporting.MavenReportException Method to get the files on the specified source paths- Parameters:
sourcePaths- a Collection that contains the paths to the source files- Returns:
- a List that contains the specific path for every source file
- Throws:
org.apache.maven.reporting.MavenReportException-MavenReportExceptionissue while generating report
-
getSourcePaths
protected Collection<JavadocModule> getSourcePaths() throws org.apache.maven.reporting.MavenReportExceptionMethod to get the source paths per reactorProject. If no source path is specified in the parameter, the compile source roots of the project will be used.- Returns:
- a Map of the project absolute source paths per projects key (G:A)
- Throws:
org.apache.maven.reporting.MavenReportException-MavenReportExceptionissue while generating report- See Also:
-
configureDependencySourceResolution
Override this method to customize the configuration for resolving dependency sources. The default behavior enables the resolution of -sources jar files.- Parameters:
config-SourceResolverConfig- Returns:
SourceResolverConfig
-
getDependencySourcePaths
protected final Collection<JavadocModule> getDependencySourcePaths() throws org.apache.maven.reporting.MavenReportExceptionResolve dependency sources so they can be included directly in the javadoc process. To customize this, overrideconfigureDependencySourceResolution(SourceResolverConfig).- Returns:
- List of source paths.
- Throws:
org.apache.maven.reporting.MavenReportException-MavenReportException
-
canGenerateReport
Method that indicates whether the javadoc can be generated or not. If the project does not contain any source files and no subpackages are specified, the plugin will terminate.- Parameters:
files- the project files- Returns:
- a boolean that indicates whether javadoc report can be generated or not
-
getDependencyScopeFilter
protected org.eclipse.aether.util.filter.ScopeDependencyFilter getDependencyScopeFilter() -
resolveDependency
public org.apache.maven.artifact.Artifact resolveDependency(org.apache.maven.model.Dependency dependency) throws org.apache.maven.reporting.MavenReportException - Parameters:
dependency-Dependency- Returns:
Artifact- Throws:
org.apache.maven.reporting.MavenReportException- when artifact could not be resolved
-
getToolchain
protected final org.apache.maven.toolchain.Toolchain getToolchain() -
isDetectOfflineLinks
protected boolean isDetectOfflineLinks() -
getDefaultJavadocApiLink
- Returns:
- if
detectJavaApiLink, the Java API link based on thejavaApiLinksproperties and the value of thesourceparameter in theorg.apache.maven.plugins:maven-compiler-plugindefined in${project.build.plugins}or in${project.build.pluginManagement}, or thejavadocRuntimeVersion, ornullif not defined. - Since:
- 2.6
- See Also:
-
isValidJavadocLink
- Parameters:
link- not nulldetecting-trueif the link is generated bydetectLinks, orfalseotherwise- Returns:
trueif the link has a/package-list,falseotherwise.- Since:
- 2.6
- See Also:
-
getJavadocOptionsFile
Construct the output file for the generated javadoc-options XML file, after creating the javadocOptionsDir if necessary. This method does NOT write to the file in question.- Returns:
- The options
Filefile. - Since:
- 2.7
-
buildJavadocOptions
Generate a javadoc-options XML file, for either bundling with a javadoc-resources artifact OR supplying to a distro module in a includeDependencySources configuration, so the javadoc options from this execution can be reconstructed and merged in the distro build.- Returns:
JavadocOptions- Throws:
IOException-IOException- Since:
- 2.7
-
getAttachmentClassifier
Override this if you need to provide a bundle attachment classifier, as in the case of test javadocs.- Returns:
- the attachment classifier
-
logError
Logs an error with throwable content only if in debug.- Parameters:
message- the message which should be announcedt- the throwable part of the message
-
getReactorProjects
-
failOnError
protected void failOnError(String prefix, Exception e) throws org.apache.maven.plugin.MojoExecutionException - Parameters:
prefix- the prefix of the exceptione- the exception- Throws:
org.apache.maven.plugin.MojoExecutionException-MojoExecutionExceptionissue while generating report
-
isSkippedModule
protected boolean isSkippedModule(org.apache.maven.project.MavenProject mavenProject) - Parameters:
mavenProject- the project that might be skipped- Returns:
trueif the project needs to be skipped from aggregate generation
-
isSkippedJavadoc
protected boolean isSkippedJavadoc(org.apache.maven.project.MavenProject mavenProject) - Parameters:
mavenProject- the project that might be skipped- Returns:
trueif the pom configuration skips javadoc generation for the project
-