Merge branch 'pr-2314' #2314
[doc] maven integration - Add version to plugin
This commit is contained in:
@ -2,7 +2,8 @@
|
||||
title: Maven PMD Plugin
|
||||
tags: [userdocs, tools]
|
||||
permalink: pmd_userdocs_tools_maven.html
|
||||
last_updated: August 2017
|
||||
last_updated: March 2020
|
||||
mpmd_version: 3.13.0
|
||||
author: >
|
||||
Miguel Griffa <mikkey@users.sourceforge.net>,
|
||||
Romain PELISSE <belaran@gmail.com>,
|
||||
@ -13,6 +14,36 @@ author: >
|
||||
|
||||
### Running the pmd plugin
|
||||
|
||||
#### Choosing the plugin version
|
||||
|
||||
When adding the maven-pmd-plugin to your pom.xml, you need to select a version. To figure out the
|
||||
latest available version, have a look at the official [maven-pmd-plugin documentation](https://maven.apache.org/plugins/maven-pmd-plugin/).
|
||||
|
||||
As of {{ page.last_updated }}, the current plugin version is **{{ page.mpmd_version }}**.
|
||||
|
||||
The version of the plugin should be specified in `<build><pluginManagement/></build>` and if using the project
|
||||
report additionally in `<reporting><plugins/></reporting>` elements. Here's an example for the pluginManagement
|
||||
section:
|
||||
|
||||
```xml
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>{{ page.mpmd_version }}</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
```
|
||||
|
||||
When defining the version in the pluginManagment section, then it doesn't need to be specified in the normal plugins
|
||||
section. However, it should additionally be specified in the reporting section.
|
||||
|
||||
More information, see [Guide to Configuring Plugin-ins](https://maven.apache.org/guides/mini/guide-configuring-plugins.html).
|
||||
|
||||
#### Generating a project report
|
||||
|
||||
To include the PMD report in the project reports section add the following lines under
|
||||
@ -26,6 +57,7 @@ the reports element in your pom.xml:
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>{{ page.mpmd_version }}</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
@ -58,8 +90,11 @@ PMD finds some violations. Therefore the `check` goal is used:
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>{{ page.mpmd_version }}</version> <!-- or use version from pluginManagement -->
|
||||
<configuration>
|
||||
<failOnViolation>true</failOnViolation> <!-- this is actually true by default, but can be disabled -->
|
||||
<!-- failOnViolation is actually true by default, but can be disabled -->
|
||||
<failOnViolation>true</failOnViolation>
|
||||
<!-- printFailingErrors is pretty useful -->
|
||||
<printFailingErrors>true</printFailingErrors>
|
||||
</configuration>
|
||||
<executions>
|
||||
@ -87,11 +122,13 @@ you add `cpd-check` as a goal.
|
||||
To specify a ruleset, simply edit the previous configuration:
|
||||
|
||||
|
||||
``` xml
|
||||
<reporting>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>{{ page.mpmd_version }}</version>
|
||||
<configuration>
|
||||
<rulesets>
|
||||
<ruleset>/rulesets/java/quickstart.xml</ruleset>
|
||||
@ -102,6 +139,7 @@ To specify a ruleset, simply edit the previous configuration:
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
```
|
||||
|
||||
The value of the 'ruleset' element can either be a relative address, an absolute address or even an url.
|
||||
|
||||
@ -117,23 +155,30 @@ will be able to resolve those other ruleset references.
|
||||
When using the Maven PMD plugin 3.8 or later along with PMD 5.6.0 or later, you can enable incremental analysis to
|
||||
speed up PMD's execution while retaining the quality of the analysis. You can additionally customize where the cache is stored::
|
||||
|
||||
```xml
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>{{ page.mpmd_version }}</version> <!-- or use version from pluginManagement -->
|
||||
<configuration>
|
||||
<analysisCache>true</analysisCache> <!-- enable incremental analysis -->
|
||||
<analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation> <!-- Optional: points to this location by default -->
|
||||
<!-- enable incremental analysis -->
|
||||
<analysisCache>true</analysisCache>
|
||||
<!-- analysisCacheLocation: optional - points to the following location by default -->
|
||||
<analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation>
|
||||
</configuration>
|
||||
</plugin>
|
||||
```
|
||||
|
||||
#### Other configurations
|
||||
|
||||
The Maven PMD plugin allows you to configure CPD, targetJDK, and the use of XRef to link
|
||||
the report to html source files, and the file encoding:
|
||||
|
||||
```xml
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>{{ page.mpmd_version }}</version> <!-- or use version from pluginManagement -->
|
||||
<configuration>
|
||||
<linkXRef>true</linkXRef>
|
||||
<sourceEncoding>ISO-8859-1</sourceEncoding>
|
||||
@ -141,6 +186,7 @@ the report to html source files, and the file encoding:
|
||||
<targetJdk>1.4</targetJdk>
|
||||
</configuration>
|
||||
</plugin>
|
||||
```
|
||||
|
||||
#### Upgrading the PMD version at runtime
|
||||
|
||||
@ -162,7 +208,7 @@ Maven plugin will use and benefit from the latest bugfixes and enhancements:
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>3.8</version>
|
||||
<version>{{ page.mpmd_version }}</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.pmd</groupId>
|
||||
|
@ -99,6 +99,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
|
||||
### External Contributions
|
||||
|
||||
* [#2312](https://github.com/pmd/pmd/pull/2312): \[apex] Update ApexCRUDViolation Rule - [Joshua S Arquilevich](https://github.com/jarquile)
|
||||
* [#2314](https://github.com/pmd/pmd/pull/2314): \[doc] maven integration - Add version to plugin - [Pham Hai Trung](https://github.com/gpbp)
|
||||
* [#2353](https://github.com/pmd/pmd/pull/2353): \[plsql] xmlforest with optional AS - [Piotr Szymanski](https://github.com/szyman23)
|
||||
|
||||
{% endtocmaker %}
|
||||
|
Reference in New Issue
Block a user