blob: 7526bba3fe01826972460b9fbc9446e3b454221a [file] [log] [blame]
------
Upgrading PMD at Runtime
------
Andreas Dangel
------
2017-08-19
------
~~ 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.
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html
Upgrading PMD at Runtime
The Maven PMD plugin comes with a default PMD version: for <<<maven-pmd-plugin ${project.version}>>>,
<<PMD ${pmdVersion}>> is used by default.
Given that the {{{https://pmd.github.io}newer PMD version}} is compatible,
you can override the PMD version, that the Maven plugin will use and benefit
from the latest bugfixes and enhancements:
+-----+
<project>
<properties>
<pmdVersion>...choose your version...</pmdVersion>
</properties>
...
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${project.version}</version>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>\${pmdVersion}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-java</artifactId>
<version>\${pmdVersion}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-javascript</artifactId>
<version>\${pmdVersion}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-jsp</artifactId>
<version>\${pmdVersion}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
...
</project>
+-----+
* Version relationship between maven-pmd-plugin and PMD
Every maven-pmd-plugin version ships with a default PMD version. The default PMD version
is upgraded irregularly, e.g. when support for a newer Java version is required.
Here's a historical overview about the default PMD version used:
*--------------------------------------------------------------------------------*--------------------------------------------------*
| <<maven-pmd-plugin>> | <<PMD>> |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.15.0/}3.15.0}} | {{{https://pmd.github.io/pmd-6.38.0/}6.38.0}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.14.0/}3.14.0}} | {{{https://pmd.github.io/pmd-6.29.0/}6.29.0}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.13.0/}3.13.0}} | {{{https://pmd.github.io/pmd-6.21.0/}6.21.0}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.12.0/}3.12.0}} | {{{https://pmd.github.io/pmd-6.13.0/}6.13.0}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.11.0/}3.11.0}} | {{{https://pmd.sourceforge.io/pmd-6.8.0/}6.8.0}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.10.0/}3.10.0}} | {{{https://pmd.sourceforge.io/pmd-6.4.0/}6.4.0}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.9.0/}3.9.0}} | {{{https://pmd.sourceforge.io/pmd-6.0.1/}6.0.1}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.8/}3.8}} | {{{https://pmd.sourceforge.io/pmd-5.6.1/}5.6.1}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.7/}3.7}} | {{{https://pmd.sourceforge.io/pmd-5.5.1/}5.5.1}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.6/}3.6}} | {{{https://pmd.sourceforge.io/pmd-5.3.5/}5.3.5}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
| {{{https://maven.apache.org/plugins-archives/maven-pmd-plugin-3.5/}3.5}} | {{{https://pmd.sourceforge.io/pmd-5.3.2/}5.3.2}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*