 ------
 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...</version>
  </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.14.0/}3.14.0}} | {{{https://pmd.github.io/pmd-6.23.0/}6.23.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}} |
*--------------------------------------------------------------------------------*--------------------------------------------------*
