Class AbstractJavadocMojo

    • Field Detail

      • 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, Constant Field Values
      • 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:
        JAVADOC_RESOURCES_ATTACHMENT_CLASSIFIER, Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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
      • links

        @Parameter(property="links")
        protected ArrayList<String> links
        Creates links to existing javadoc-generated documentation of external referenced classes.

        Notes:

        1. This option is ignored if the plugin is run in offline mode (using the <offline> setting or specifying -o, --offline or -Dmaven.javadoc.offline=true on the command line.
        2. all given links should have a fetchable /package-list or /element-list (since Java 10). For instance:
           <links>
             <link>https://docs.oracle.com/en/java/javase/17/docs/api</link>
           <links>
           
          will be used because https://docs.oracle.com/en/java/javase/17/docs/api/element-list exists.
        3. If detectLinks is defined, the links between the project dependencies are automatically added.
        4. If detectJavaApiLink is defined, a Java API link, based on the Java version of the project's sources, will be added automatically.
        See Also:
        Doclet option link
      • 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:
        Doclet option d
      • 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 Detail

      • AbstractJavadocMojo

        public AbstractJavadocMojo()
    • Method Detail

      • 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:
        JavadocUtil.pruneDirs(MavenProject, Collection)
      • 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:
        source parameter
      • 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:
        package-list spec
      • 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