Class AbstractCheckstyleReport

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.reporting.AbstractMavenReport
org.apache.maven.plugins.checkstyle.AbstractCheckstyleReport
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.apache.maven.reporting.MavenMultiPageReport, org.apache.maven.reporting.MavenReport
Direct Known Subclasses:
CheckstyleAggregateReport, CheckstyleReport

public abstract class AbstractCheckstyleReport extends org.apache.maven.reporting.AbstractMavenReport
Base abstract class for Checkstyle reports.
  • Field Details

    • JAVA_FILES

      protected static final String JAVA_FILES
      See Also:
    • DEFAULT_CONFIG_LOCATION

      private static final String DEFAULT_CONFIG_LOCATION
      See Also:
    • session

      @Parameter(defaultValue="${session}", readonly=true, required=true) private org.apache.maven.execution.MavenSession session
    • cacheFile

      @Parameter(defaultValue="${project.build.directory}/checkstyle-cachefile") protected String cacheFile
      Specifies the cache file used to speed up Checkstyle on successive runs.
    • configLocation

      @Parameter(property="checkstyle.config.location", defaultValue="sun_checks.xml") protected String configLocation

      Specifies the location of the XML configuration to use.

      Potential values are a filesystem path, a URL, or a classpath resource. This parameter expects that the contents of the location conform to the xml format (Checkstyle Checker module) configuration of rulesets.

      This parameter is resolved as resource, URL, then file. If successfully resolved, the contents of the configuration is copied into the ${project.build.directory}/checkstyle-configuration.xml file before being passed to Checkstyle as a configuration.

      There are 2 predefined rulesets included in Maven Checkstyle Plugin:

      • sun_checks.xml: Sun Checks.
      • google_checks.xml: Google Checks.
    • consoleOutput

      @Parameter(property="checkstyle.consoleOutput", defaultValue="false") protected boolean consoleOutput
      Output errors to console.
    • failsOnError

      @Parameter(defaultValue="false") protected boolean failsOnError
      Specifies if the build should fail upon a violation.
    • headerLocation

      @Parameter(property="checkstyle.header.file", defaultValue="LICENSE.txt") protected String headerLocation

      Specifies the location of the License file (a.k.a. the header file) that can be used by Checkstyle to verify that source code has the correct license header.

      You need to use ${checkstyle.header.file} in your Checkstyle xml configuration to reference the name of this header file.

      For instance:

       <module name="RegexpHeader">
         <property name="headerFile" value="${checkstyle.header.file}"/>
       </module>
       
      Since:
      2.0-beta-2
    • skip

      @Parameter(property="checkstyle.skip", defaultValue="false") protected boolean skip
      Skip entire check.
      Since:
      2.2
    • outputFile

      @Parameter(property="checkstyle.output.file", defaultValue="${project.build.directory}/checkstyle-result.xml") private File outputFile
      Specifies the path and filename to save the Checkstyle output. The format of the output file is determined by the outputFileFormat parameter.
    • propertiesLocation

      @Parameter(property="checkstyle.properties.location") protected String propertiesLocation

      Specifies the location of the properties file.

      This parameter is resolved as URL, File then resource. If successfully resolved, the contents of the properties location is copied into the ${project.build.directory}/checkstyle-checker.properties file before being passed to Checkstyle for loading.

      The contents of the propertiesLocation will be made available to Checkstyle for specifying values for parameters within the xml configuration (specified in the configLocation parameter).

      Since:
      2.0-beta-2
    • propertyExpansion

      @Parameter protected String propertyExpansion
      Allows for specifying raw property expansion information.
    • resources

      @Parameter(defaultValue="${project.resources}", readonly=true) protected List<org.apache.maven.model.Resource> resources
      Specifies the location of the resources to be used for Checkstyle.
      Since:
      2.10
    • testResources

      @Parameter(defaultValue="${project.testResources}", readonly=true) protected List<org.apache.maven.model.Resource> testResources
      Specifies the location of the test resources to be used for Checkstyle.
      Since:
      2.11
    • includes

      @Parameter(property="checkstyle.includes", defaultValue="**\\/*.java", required=true) protected String includes
      Specifies the names filter of the source files to be used for Checkstyle.
    • excludes

      @Parameter(property="checkstyle.excludes") protected String excludes
      Specifies the names filter of the source files to be excluded for Checkstyle.
    • resourceIncludes

      @Parameter(property="checkstyle.resourceIncludes", defaultValue="**/*.properties", required=true) protected String resourceIncludes
      Specifies the names filter of the resource files to be used for Checkstyle.
      Since:
      2.11
    • resourceExcludes

      @Parameter(property="checkstyle.resourceExcludes") protected String resourceExcludes
      Specifies the names filter of the resource files to be excluded for Checkstyle.
      Since:
      2.11
    • includeResources

      @Parameter(property="checkstyle.includeResources", defaultValue="true", required=true) protected boolean includeResources
      Specifies whether to include the resource directories in the check.
      Since:
      2.11
    • includeTestResources

      @Parameter(property="checkstyle.includeTestResources", defaultValue="true", required=true) protected boolean includeTestResources
      Specifies whether to include the test resource directories in the check.
      Since:
      2.11
    • sourceDirectory

      @Deprecated @Parameter private File sourceDirectory
      Deprecated.
      instead use sourceDirectories. For version 3.0.0, this parameter is only defined to break the build if you use it!
      Specifies the location of the source directory to be used for Checkstyle.
    • sourceDirectories

      @Parameter private List<String> sourceDirectories
      Specifies the location of the source directories to be used for Checkstyle. Default value is ${project.compileSourceRoots}.
      Since:
      2.13
    • testSourceDirectory

      @Parameter @Deprecated private File testSourceDirectory
      Deprecated.
      instead use testSourceDirectories. For version 3.0.0, this parameter is only defined to break the build if you use it!
      Specifies the location of the test source directory to be used for Checkstyle.
      Since:
      2.2
    • testSourceDirectories

      @Parameter private List<String> testSourceDirectories
      Specifies the location of the test source directories to be used for Checkstyle. Default value is ${project.testCompileSourceRoots}.
      Since:
      2.13
    • includeTestSourceDirectory

      @Parameter(defaultValue="false") protected boolean includeTestSourceDirectory
      Include or not the test source directory/directories to be used for Checkstyle.
      Since:
      2.2
    • suppressionsFileExpression

      @Parameter(property="checkstyle.suppression.expression", defaultValue="checkstyle.suppressions.file") protected String suppressionsFileExpression
      The key to be used in the properties for the suppressions file.
      Since:
      2.1
    • suppressionsLocation

      @Parameter(property="checkstyle.suppressions.location") protected String suppressionsLocation

      Specifies the location of the suppressions XML file to use.

      This parameter is resolved as resource, URL, then file. If successfully resolved, the contents of the suppressions XML is copied into the ${project.build.directory}/checkstyle-supressions.xml file before being passed to Checkstyle for loading.

      See suppressionsFileExpression for the property that will be made available to your Checkstyle configuration.

      Since:
      2.0-beta-2
    • useFile

      @Parameter private File useFile
      If null, the Checkstyle plugin will display violations on stdout. Otherwise, a text file will be created with the violations.
    • outputFileFormat

      @Parameter(property="checkstyle.output.format", defaultValue="xml") private String outputFileFormat
      Specifies the format of the output to be used when writing to the output file. Valid values are "plain", "sarif" and "xml".
    • enableRulesSummary

      @Parameter(property="checkstyle.enable.rules.summary", defaultValue="true") private boolean enableRulesSummary
      Specifies if the Rules summary should be enabled or not.
    • enableSeveritySummary

      @Parameter(property="checkstyle.enable.severity.summary", defaultValue="true") private boolean enableSeveritySummary
      Specifies if the Severity summary should be enabled or not.
    • enableFilesSummary

      @Parameter(property="checkstyle.enable.files.summary", defaultValue="true") private boolean enableFilesSummary
      Specifies if the Files summary should be enabled or not.
    • plugin

      @Parameter(defaultValue="${plugin}", readonly=true, required=true) private org.apache.maven.plugin.descriptor.PluginDescriptor plugin
      The Plugin Descriptor
    • linkXRef

      @Parameter(property="linkXRef", defaultValue="true") private boolean linkXRef
      Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is being used.
      Since:
      2.1
    • xrefLocation

      @Parameter private File xrefLocation
      Location where Source XRef is generated for this project.
      Default: AbstractMavenReport.getReportOutputDirectory() + /xref
    • xrefTestLocation

      @Parameter private File xrefTestLocation
      Location where Test Source XRef is generated for this project.
      Default: AbstractMavenReport.getReportOutputDirectory() + /xref-test
    • treeWalkerNames

      @Parameter private List<String> treeWalkerNames
      When using custom treeWalkers, specify their names here so the checks inside the treeWalker end up the the rule-summary.
      Since:
      2.11
    • omitIgnoredModules

      @Parameter(defaultValue="false") private boolean omitIgnoredModules
      Specifies whether modules with a configured severity of ignore should be omitted during Checkstyle invocation.
      Since:
      3.0.0
    • checkstyleRules

      @Parameter private org.codehaus.plexus.configuration.PlexusConfiguration checkstyleRules
      By using this property, you can specify the whole Checkstyle rules inline directly inside this pom.
       <plugin>
         ...
         <configuration>
           <checkstyleRules>
             <module name="Checker">
               <module name="FileTabCharacter">
                 <property name="eachLine" value="true" />
               </module>
               <module name="TreeWalker">
                 <module name="EmptyBlock"/>
               </module>
             </module>
           </checkstyleRules>
         </configuration>
         ...
       
      Since:
      2.12
    • rulesFiles

      @Parameter(property="checkstyle.output.rules.file", defaultValue="${project.build.directory}/checkstyle-rules.xml") private File rulesFiles
      Dump file for inlined Checkstyle rules.
    • checkstyleRulesHeader

      @Parameter(defaultValue="<?xml version=\"1.0\"?>\n<!DOCTYPE module PUBLIC \"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN\"\n \"https://checkstyle.org/dtds/configuration_1_3.dtd\">\n") private String checkstyleRulesHeader
      The header to use for the inline configuration. Only used when you specify checkstyleRules.
    • excludeGeneratedSources

      @Parameter(property="checkstyle.excludeGeneratedSources", defaultValue="false") private boolean excludeGeneratedSources
      Specifies whether generated source files should be excluded from Checkstyle.
      Since:
      3.3.1
    • locator

      @Component protected org.codehaus.plexus.resource.ResourceManager locator
    • checkstyleExecutor

      @Component(role=CheckstyleExecutor.class, hint="default") protected CheckstyleExecutor checkstyleExecutor
      Since:
      2.5
    • i18n

      @Component private org.codehaus.plexus.i18n.I18N i18n
      Internationalization component
    • stringOutputStream

      protected ByteArrayOutputStream stringOutputStream
  • Constructor Details

    • AbstractCheckstyleReport

      public AbstractCheckstyleReport()
  • Method Details

    • getName

      public String getName(Locale locale)
    • getDescription

      public String getDescription(Locale locale)
    • getI18nString

      protected String getI18nString(Locale locale, String key)
      Parameters:
      locale - The locale
      key - The key to search for
      Returns:
      The text appropriate for the locale.
    • getProject

      protected org.apache.maven.project.MavenProject getProject()
      Overrides:
      getProject in class org.apache.maven.reporting.AbstractMavenReport
    • getReactorProjects

      protected List<org.apache.maven.project.MavenProject> getReactorProjects()
    • executeReport

      public void executeReport(Locale locale) throws org.apache.maven.reporting.MavenReportException
      Specified by:
      executeReport in class org.apache.maven.reporting.AbstractMavenReport
      Throws:
      org.apache.maven.reporting.MavenReportException
    • checkDeprecatedParameterUsage

      private void checkDeprecatedParameterUsage(Object parameter, String name, String replacement) throws org.apache.maven.reporting.MavenReportException
      Throws:
      org.apache.maven.reporting.MavenReportException
    • createRequest

      protected abstract CheckstyleExecutorRequest createRequest() throws org.apache.maven.reporting.MavenReportException
      Create the Checkstyle executor request.
      Returns:
      The executor request.
      Throws:
      org.apache.maven.reporting.MavenReportException - If something goes wrong during creation.
    • collectArtifacts

      private List<org.apache.maven.artifact.Artifact> collectArtifacts(String hint)
    • getCheckstylePluginDependenciesAsArtifacts

      private List<org.apache.maven.artifact.Artifact> getCheckstylePluginDependenciesAsArtifacts(Map<String,org.apache.maven.model.Plugin> plugins, String hint)
    • getListener

      protected com.puppycrawl.tools.checkstyle.api.AuditListener getListener() throws org.apache.maven.reporting.MavenReportException
      Creates and returns the report generation listener.
      Returns:
      The audit listener.
      Throws:
      org.apache.maven.reporting.MavenReportException - If something goes wrong.
    • getOutputStream

      private OutputStream getOutputStream(File file) throws org.apache.maven.reporting.MavenReportException
      Throws:
      org.apache.maven.reporting.MavenReportException
    • getConsoleListener

      protected com.puppycrawl.tools.checkstyle.DefaultLogger getConsoleListener() throws org.apache.maven.reporting.MavenReportException
      Creates and returns the console listener.
      Returns:
      The console listener.
      Throws:
      org.apache.maven.reporting.MavenReportException - If something goes wrong.
    • determineRelativePath

      private String determineRelativePath(File location)
    • getSourceDirectories

      protected List<File> getSourceDirectories()
    • getTestSourceDirectories

      protected List<File> getTestSourceDirectories()
    • filterBuildTarget

      private List<String> filterBuildTarget(List<String> sourceDirectories)