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:
JavadocJar, JavadocReport, ResourcesBundleMojo

public abstract class AbstractJavadocMojo extends org.apache.maven.plugin.AbstractMojo
Base class with majority of Javadoc functionalities.
Since:
2.0
Author:
Brett Porter, Vincent Siveton
See Also:
  • Field Details

    • JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER

      public static final String 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

      public static final String 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

      protected static final String DEBUG_JAVADOC_SCRIPT_NAME
      The Javadoc script file name when debug parameter is on, i.e. javadoc.bat or javadoc.sh
    • OPTIONS_FILE_NAME

      protected static final String OPTIONS_FILE_NAME
      The options file name in the output directory when calling: javadoc.exe(or .sh) @options @packages | @argfile | @files
      See Also:
    • PACKAGES_FILE_NAME

      protected static final String PACKAGES_FILE_NAME
      The packages file name in the output directory when calling: javadoc.exe(or .sh) @options @packages | @argfile | @files
      See Also:
    • ARGFILE_FILE_NAME

      protected static final String ARGFILE_FILE_NAME
      The argfile file name in the output directory when calling: javadoc.exe(or .sh) @options @packages | @argfile | @files
      See Also:
    • FILES_FILE_NAME

      protected static final String FILES_FILE_NAME
      The files file name in the output directory when calling: javadoc.exe(or .sh) @options @packages | @argfile | @files
      See Also:
    • session

      @Parameter(defaultValue="${session}", readonly=true, required=true) protected org.apache.maven.execution.MavenSession session
      The 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 project
      The Maven Project Object
    • skip

      @Parameter(property="maven.javadoc.skip", defaultValue="false") protected boolean skip
      Specifies whether the Javadoc generation should be skipped.
      Since:
      2.5
    • failOnError

      @Parameter(property="maven.javadoc.failOnError", defaultValue="true") protected boolean failOnError
      Specifies 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 failOnWarnings
      Specifies 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 useStandardDocletOptions
      Specifies 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
    • outputDirectory

      @Parameter(property="destDir", alias="destDir", defaultValue="${project.build.directory}/apidocs", required=true) protected File outputDirectory
      Specifies the destination directory where javadoc saves the generated HTML files.
      See Also:
    • outputTimestamp

      @Parameter(defaultValue="${project.build.outputTimestamp}") protected String outputTimestamp
      Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
      Since:
      3.2.0
  • Constructor Details

    • AbstractJavadocMojo

      public AbstractJavadocMojo()
  • Method Details

    • isAggregator

      protected boolean isAggregator()
      Indicates whether this goal is flagged with @aggregator.
      Returns:
      true if the goal is designed as an aggregator, false otherwise.
      See Also:
    • isTest

      protected boolean isTest()
      Indicates whether this goal generates documentation for the Java Test code.
      Returns:
      true if the goal generates Test Javadocs, false otherwise.
    • getOutputDirectory

      protected String getOutputDirectory()
      Returns:
      the output directory
    • getProject

      protected org.apache.maven.project.MavenProject getProject()
    • getProjectBuildOutputDirs

      protected List<File> getProjectBuildOutputDirs(org.apache.maven.project.MavenProject p)
      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

      protected File getClassesFile(org.apache.maven.project.MavenProject project)
      Parameters:
      project - the project in which to find a classes file
      Returns:
      null, the attached artifact file, or outputDirectory.
    • getProjectSourceRoots

      protected List<String> getProjectSourceRoots(org.apache.maven.project.MavenProject p)
      Parameters:
      p - not null maven project
      Returns:
      the list of source paths for the given project
    • getExecutionProjectSourceRoots

      protected List<String> getExecutionProjectSourceRoots(org.apache.maven.project.MavenProject p)
      Parameters:
      p - not null maven project
      Returns:
      the list of source paths for the execution project of the given project
    • getJavadocDirectory

      protected File getJavadocDirectory()
      Returns:
      the current javadoc directory
    • getDoclint

      protected String getDoclint()
      Returns:
      the doclint specific checks configuration
    • getDoctitle

      protected String getDoctitle()
      Returns:
      the title to be placed near the top of the overview summary file
    • getOverview

      protected File getOverview()
      Returns:
      the overview documentation file from the user parameter or from the javadocdirectory
    • getWindowtitle

      protected String 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.MojoExecutionException
      org.apache.maven.plugin.MojoFailureException
    • verifyRemovedParameter

      protected final void verifyRemovedParameter(String paramName)
    • 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 - MavenReportException issue while generating report
    • getSourcePaths

      protected Collection<JavadocModule> getSourcePaths() throws org.apache.maven.reporting.MavenReportException
      Method 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 - MavenReportException issue while generating report
      See Also:
    • configureDependencySourceResolution

      protected SourceResolverConfig configureDependencySourceResolution(SourceResolverConfig config)
      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.MavenReportException
      Resolve dependency sources so they can be included directly in the javadoc process. To customize this, override configureDependencySourceResolution(SourceResolverConfig).
      Returns:
      List of source paths.
      Throws:
      org.apache.maven.reporting.MavenReportException - MavenReportException
    • canGenerateReport

      protected boolean canGenerateReport(Map<Path,Collection<String>> files)
      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()
    • getDefaultJavadocApiLink

      protected final OfflineLink getDefaultJavadocApiLink()
      Returns:
      if detectJavaApiLink, the Java API link based on the javaApiLinks properties and the value of the source parameter in the org.apache.maven.plugins:maven-compiler-plugin defined in ${project.build.plugins} or in ${project.build.pluginManagement}, or the javadocRuntimeVersion, or null if not defined.
      Since:
      2.6
      See Also:
    • isValidJavadocLink

      protected boolean isValidJavadocLink(String link, boolean detecting)
      Parameters:
      link - not null
      detecting - true if the link is generated by detectLinks, or false otherwise
      Returns:
      true if the link has a /package-list, false otherwise.
      Since:
      2.6
      See Also:
    • getJavadocOptionsFile

      protected final File 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 File file.
      Since:
      2.7
    • buildJavadocOptions

      protected final JavadocOptions buildJavadocOptions() throws IOException
      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

      protected String getAttachmentClassifier()
      Override this if you need to provide a bundle attachment classifier, as in the case of test javadocs.
      Returns:
      The attachment classifier.
    • logError

      protected void logError(String message, Throwable t)
      Logs an error with throwable content only if in debug.
      Parameters:
      message - The message which should be announced.
      t - The throwable part of the message.
    • failOnError

      protected void failOnError(String prefix, Exception e) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      prefix - The prefix of the exception.
      e - The exception.
      Throws:
      org.apache.maven.plugin.MojoExecutionException - MojoExecutionException issue while generating report
    • isSkippedModule

      protected boolean isSkippedModule(org.apache.maven.project.MavenProject mavenProject)
      Parameters:
      mavenProject - the project that might be skipped
      Returns:
      true if 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:
      true if the pom configuration skips javadoc generation for the project