Class CheckstyleViolationCheckMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.checkstyle.CheckstyleViolationCheckMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="check", defaultPhase=VERIFY, requiresDependencyResolution=TEST, threadSafe=true) public class CheckstyleViolationCheckMojo extends org.apache.maven.plugin.AbstractMojo
Performs Checkstyle analysis and outputs violations or a count of violations to the console, potentially failing the build. It can also be configured to re-use an earlier analysis.
Version:
$Id$
  • Field Details

    • JAVA_FILES

      private static final String JAVA_FILES
      See Also:
    • CHECKSTYLE_FILE_HEADER

      private static final String CHECKSTYLE_FILE_HEADER
      See Also:
    • 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.
    • 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" and "xml".
    • failOnViolation

      @Parameter(property="checkstyle.failOnViolation", defaultValue="true") private boolean failOnViolation
      Fail the build on a violation. The goal checks for the violations after logging them (if logViolationsToConsole is true). Compare this to failsOnError which fails the build immediately before examining the output log.
    • maxAllowedViolations

      @Parameter(property="checkstyle.maxAllowedViolations", defaultValue="0") private int maxAllowedViolations
      The maximum number of allowed violations. The execution fails only if the number of violations is above this limit.
      Since:
      2.3
    • violationSeverity

      @Parameter(property="checkstyle.violationSeverity", defaultValue="error") private String violationSeverity
      The lowest severity level that is considered a violation. Valid values are "error", "warning" and "info".
      Since:
      2.2
    • violationIgnore

      @Parameter(property="checkstyle.violation.ignore") private String violationIgnore
      Violations to ignore. This is a comma-separated list, each value being either a rule name, a rule category or a java package name of rule class.
      Since:
      2.13
    • skip

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

      @Parameter(property="checkstyle.skipExec", defaultValue="false") private boolean skipExec
      Skip Checkstyle execution will only scan the outputFile.
      Since:
      2.5
    • logViolationsToConsole

      @Parameter(property="checkstyle.console", defaultValue="true") private boolean logViolationsToConsole
      Output the detected violations to the console.
      Since:
      2.3
    • 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.11
    • 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.16
    • configLocation

      @Parameter(property="checkstyle.config.location", defaultValue="sun_checks.xml") private 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.

      • sun_checks.xml: Sun Checks.
      • google_checks.xml: Google Checks.
      Since:
      2.5
    • propertiesLocation

      @Parameter(property="checkstyle.properties.location") private 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.5
    • propertyExpansion

      @Parameter private String propertyExpansion
      Allows for specifying raw property expansion information.
    • headerLocation

      @Parameter(property="checkstyle.header.file", defaultValue="LICENSE.txt") private 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
    • cacheFile

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

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

      @Parameter(property="checkstyle.suppressions.location") private 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-suppressions.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
    • encoding

      @Parameter(property="encoding", defaultValue="${project.build.sourceEncoding}") private String encoding
      The file encoding to use when reading the source files. If the property project.build.sourceEncoding is not set, the platform default encoding is used. Note: This parameter always overrides the property charset from Checkstyle's TreeWalker module.
      Since:
      2.2
    • checkstyleExecutor

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

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

      @Parameter(defaultValue="${project}", readonly=true, required=true) protected org.apache.maven.project.MavenProject project
      The Maven Project Object.
    • plugin

      @Parameter(defaultValue="${plugin}", readonly=true, required=true) private org.apache.maven.plugin.descriptor.PluginDescriptor plugin
      The Plugin Descriptor
    • 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.
    • excludes

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

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

      @Parameter(property="checkstyle.resourceExcludes") private String resourceExcludes
      Specifies the names filter of the files to be excluded for Checkstyle when checking resources.
      Since:
      2.11
    • resourceIncludes

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

      @Parameter(defaultValue="false") private boolean failsOnError
      If this is true, and Checkstyle reported any violations or errors, the build fails immediately after running Checkstyle, before checking the log for logViolationsToConsole. If you want to use logViolationsToConsole, use failOnViolation instead of this.
    • testSourceDirectory

      @Deprecated @Parameter 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") private boolean includeTestSourceDirectory
      Include or not the test source directory to be used for Checkstyle.
      Since:
      2.2
    • 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
    • includeResources

      @Parameter(property="checkstyle.includeResources", defaultValue="true", required=true) private boolean includeResources
      Whether to apply Checkstyle to resource directories.
      Since:
      2.11
    • includeTestResources

      @Parameter(property="checkstyle.includeTestResources", defaultValue="true", required=true) private boolean includeTestResources
      Whether to apply Checkstyle to test resource directories.
      Since:
      2.11
    • 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.
    • 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
    • stringOutputStream

      private ByteArrayOutputStream stringOutputStream
    • outputXmlFile

      private File outputXmlFile
  • Constructor Details

    • CheckstyleViolationCheckMojo

      public CheckstyleViolationCheckMojo()
  • Method Details

    • 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
    • checkDeprecatedParameterUsage

      private void checkDeprecatedParameterUsage(Object parameter, String name, String replacement) throws org.apache.maven.plugin.MojoFailureException
      Throws:
      org.apache.maven.plugin.MojoFailureException
    • countViolations

      private int countViolations(org.codehaus.plexus.util.xml.pull.XmlPullParser xpp) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException
      Throws:
      org.codehaus.plexus.util.xml.pull.XmlPullParserException
      IOException
    • log

      private void log(String severity, String message)
    • isViolation

      private boolean isViolation(String severity)
      Checks if the given severity is considered a violation.
      Parameters:
      severity - The severity to check
      Returns:
      true if the given severity is a violation, otherwise false
    • ignore

      private boolean ignore(RuleUtil.Matcher[] ignores, String source)
    • getConsoleListener

      private com.puppycrawl.tools.checkstyle.DefaultLogger getConsoleListener() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getOutputStream

      private OutputStream getOutputStream(File file) throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getListener

      private com.puppycrawl.tools.checkstyle.api.AuditListener getListener() throws org.apache.maven.plugin.MojoFailureException, org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoFailureException
      org.apache.maven.plugin.MojoExecutionException
    • 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)
    • getSourceDirectories

      private List<File> getSourceDirectories()
    • getTestSourceDirectories

      private List<File> getTestSourceDirectories()