------ Introduction ------ 06 January 2006 ------ ~~ Copyright 2006 The Apache Software Foundation. ~~ ~~ Licensed under the Apache License, Version 2.0 (the "License"); ~~ you may not use this file except in compliance with the License. ~~ You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, software ~~ distributed under the License is distributed on an "AS IS" BASIS, ~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~~ See the License for the specific language governing permissions and ~~ limitations under the License. ~~ NOTE: For help with the syntax of this file, see: ~~ http://maven.apache.org/guides/mini/guide-apt-format.html Maven 2 PMD Plugin The {{{http://pmd.sourceforge.net/}PMD}} plugin allows you to automatically run the PMD code analysis tool on your project's source code and generate a site report with its results. It also supports the separate Copy/Paste Detector tool (or CPD) distributed with PMD. The plugin accepts configuration parameters that will be used to customize the execution of the PMD tool. * Goals Overview This plugin has 4 goals: * {{{pmd-mojo.html}pmd:pmd}} creates a PMD site report based on the rulesets and configuration set in the plugin. It can also generate a pmd output file aside from the site report in any of the following formats: xml, csv or txt. * {{{cpd-mojo.html}pmd:cpd}} generates a report for PMD's Copy/Paste Detector (CPD) tool. It can also generate a cpd results file in any of these formats: xml, csv or txt. * {{{check-mojo.html}pmd:check}} verifies that the PMD report is empty and fail the build if it is not. This goal is executed by default when <<>> is executed. * {{{cpd-check-mojo.html}pmd:cpd-check}} verifies that the CPD report is empty and fail the build if it is not. This goal is also executed by default when <<>>> is executed. * Usage Instructions on how to use the PMD Plugin can be found {{{usage.html}here}}. * Examples More advanced usecases for the plugin are available under the Examples menu.