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 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:
    • siteTool

      protected org.apache.maven.doxia.tools.SiteTool siteTool
      SiteTool.
    • 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
    • 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> reactorProjects
      The projects in the reactor for aggregation report.
    • 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(defaultValue="${project.build.directory}/reports", required=true) protected File outputDirectory
      The 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

      @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(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:
      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()
    • getPluginReportOutputDirectory

      protected String getPluginReportOutputDirectory()
      Method that returns the plugin report output directory where the generated Javadoc report will be put beneath getOutputDirectory()/AbstractMavenReport.getReportOutputDirectory().
      Returns:
      a String that contains the target 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
    • doExecute

      protected abstract void doExecute() 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.
    • getReactorProjects

      protected List<org.apache.maven.project.MavenProject> getReactorProjects()
    • 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