| ------ |
| Introduction |
| ------ |
| Dennis Lundberg |
| ------ |
| 2017-11-11 |
| ------ |
| |
| ~~ Licensed to the Apache Software Foundation (ASF) under one |
| ~~ or more contributor license agreements. See the NOTICE file |
| ~~ distributed with this work for additional information |
| ~~ regarding copyright ownership. The ASF licenses this file |
| ~~ to you 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. |
| |
| ${project.name} |
| |
| The PMD Plugin allows you to automatically run the {{{https://pmd.github.io/}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. |
| |
| This version of Maven PMD Plugin uses PMD ${pmdVersion} and requires Java ${javaVersion}. |
| See {{{./examples/upgrading-PMD-at-runtime.html}Upgrading PMD at Runtime}} for more information. |
| |
| The plugin accepts configuration parameters that can 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 fails the build if it is not. |
| This goal is executed by default when <<<pmd:pmd>>> is executed. |
| |
| * {{{./cpd-check-mojo.html}pmd:cpd-check}} verifies that the CPD report is empty and fails the build if it is not. |
| This goal is executed by default when <<<pmd:cpd>>> is executed. |
| |
| * Usage |
| |
| General instructions on how to use the PMD Plugin can be found on the {{{./usage.html}usage page}}. Some more |
| specific use cases are described in the examples given below. |
| |
| In case you still have questions regarding the plugin's usage, please have a look at the {{{./faq.html}FAQ}} and feel |
| free to contact the {{{./mailing-lists.html}user mailing list}}. The posts to the mailing list are archived and could |
| already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching |
| the {{{./mailing-lists.html}mail archive}}. |
| |
| If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our |
| {{{./issue-management.html}issue tracker}}. When creating a new issue, please provide a comprehensive description of your |
| concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, |
| entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. |
| Of course, patches are welcome, too. Contributors can check out the project from our |
| {{{./scm.html}source repository}} and will find supplementary information in the |
| {{{http://maven.apache.org/guides/development/guide-helping.html}guide to helping with Maven}}. |
| |
| * Upgrading Notes |
| |
| <<Note:>> Starting with PMD 6.0.0 and Maven PMD Plugin 3.9.0, the rules have been reorganized |
| into categories, e.g. <<</category/java/bestpractices.xml>>>. So when upgrading to |
| Maven PMD Plugin 3.9.0 you should review your plugin configuration and/or custom ruleset. |
| See {{{./examples/usingRuleSets.html}Using Rule Sets}} for more information. |
| |
| |
| * Examples |
| |
| To provide you with better understanding of some usages of the Maven PMD Plugin, you can take a look into the |
| following examples: |
| |
| * {{{./examples/upgrading-PMD-at-runtime.html}Upgrading PMD at Runtime}} |
| |
| * {{{./examples/multi-module-config.html}Multimodule Configuration}} |
| |
| * {{{./examples/removeReport.html}Remove Report}} |
| |
| * {{{./examples/targetJdk.html}Target JDK and Toolchains}} |
| |
| * {{{./examples/usingRuleSets.html}Using Rule Sets}} |
| |
| * {{{./examples/violationChecking.html}Violation Checking}} |
| |
| * {{{./examples/javascriptReport.html}Analyzing JavaScript Code}} |
| |
| * {{{./examples/jspReport.html}Analyzing Java Server Pages Code}} |
| |
| * {{{./examples/cpdCsharp.html}Finding duplicated code in C#}} |
| |
| [] |