Class AbstractPmdViolationCheckMojo<D>

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.pmd.AbstractPmdViolationCheckMojo<D>
Type Parameters:
D - type of the check, e.g. Violation or Duplication.
All Implemented Interfaces:
ContextEnabled, Mojo
Direct Known Subclasses:
CpdViolationCheckMojo, PmdViolationCheckMojo

public abstract class AbstractPmdViolationCheckMojo<D> extends AbstractMojo
Base class for mojos that check if there were any PMD violations.
Version:
$Id$
Author:
Brett Porter
  • Field Details

    • failOnViolation

      @Parameter(property="pmd.failOnViolation", defaultValue="true", required=true) protected boolean failOnViolation
      Whether to fail the build if the validation check fails. The properties failurePriority and maxAllowedViolations control under which conditions exactly the build should be failed.
    • aggregate

      @Parameter(property="aggregate", defaultValue="false") @Deprecated protected boolean aggregate
      Deprecated.
      since 3.15.0 Use the goal pmd:aggregate-check or pmd:aggregate-cpd-check instead.
      Whether to build an aggregated report at the root, or build individual reports.
      Since:
      2.2
    • project

      @Parameter(defaultValue="${project}", readonly=true, required=true) protected MavenProject project
      The project to analyze.
  • Constructor Details

    • AbstractPmdViolationCheckMojo

      protected AbstractPmdViolationCheckMojo(ExcludeFromFile<D> excludeFromFile)
      Initialize this abstact check mojo by giving the correct ExcludeFromFile helper.
      Parameters:
      excludeFromFile - the needed helper, for the specific violation type
  • Method Details

    • executeCheck

      protected void executeCheck(String filename, String tagName, String key, int failurePriority) throws MojoFailureException, MojoExecutionException
      Throws:
      MojoFailureException
      MojoExecutionException
    • getPriority

      protected abstract int getPriority(D errorDetail)
    • newViolationDetailsInstance

      protected abstract ViolationDetails<D> newViolationDetailsInstance()
    • printErrors

      protected void printErrors(List<D> failures, List<D> warnings)
      Prints the warnings and failures
      Parameters:
      failures - list of failures
      warnings - list of warnings
    • printError

      protected abstract void printError(D item, String severity)
      Formats the failure details and prints them as an INFO message
      Parameters:
      item - either a Violation from PMD or a Duplication from CPD
      severity - the found issue is prefixed with the given severity, usually "Warning" or "Failure".
    • getErrorDetails

      protected abstract List<D> getErrorDetails(File analysisFile) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, IOException
      Gets the attributes and text for the violation tag and puts them in a HashMap
      Parameters:
      analysisFile - the xml output from PMD or CPD
      Returns:
      all PMD Violations or CPD Duplications.
      Throws:
      org.codehaus.plexus.util.xml.pull.XmlPullParserException - if the analysis file contains invalid XML
      IOException - if the analysis file could be read
    • isFailOnViolation

      public boolean isFailOnViolation()
    • getMaxAllowedViolations

      public Integer getMaxAllowedViolations()
    • isAggregator

      protected boolean isAggregator()