Remove use of deprecated PMD ruleset (#12044)

* Remove use of deprecated PMD ruleset

This fixes annoying warnings we were getting during build.

- Use a custom PMD ruleset, since the built-in one uses deprecated rules.
- UnnecessaryImport replaces most of the deprecated rules
- Update maven-pmd-plugin to 3.15
- Exclude ancient asm version from caliper, since this was causing
  incompatibility warnings with PMD and could also affect our tests runs
  in unexpected ways
This commit is contained in:
Xavier Léauté 2021-12-09 13:04:27 -08:00 committed by GitHub
parent 6ac4e2dbb8
commit ffc5ade506
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 2 deletions

33
codestyle/pmd-ruleset.xml Normal file
View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ 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.
-->
<ruleset name="Apache Druid PMD ruleset"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>
This ruleset defines the PMD rules for the Apache Druid project.
</description>
<rule ref="category/java/codestyle.xml/UnnecessaryImport" />
<rule ref="category/java/codestyle.xml/TooManyStaticImports" />
<rule ref="category/java/codestyle.xml/UnnecessaryFullyQualifiedName"/>
</ruleset>

12
pom.xml
View File

@ -966,6 +966,13 @@
<groupId>com.google.caliper</groupId> <groupId>com.google.caliper</groupId>
<artifactId>caliper</artifactId> <artifactId>caliper</artifactId>
<version>0.5-rc1</version> <version>0.5-rc1</version>
<exclusions>
<!-- caliper ships a very old asm version which can cause issues during testing -->
<exclusion>
<groupId>asm</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
@ -1265,11 +1272,12 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId> <artifactId>maven-pmd-plugin</artifactId>
<version>3.14.0</version> <version>3.15.0</version>
<configuration> <configuration>
<linkXRef>false</linkXRef> <!-- prevent "Unable to locate Source XRef to link to" warning -->
<printFailingErrors>true</printFailingErrors> <printFailingErrors>true</printFailingErrors>
<rulesets> <rulesets>
<ruleset>/rulesets/java/imports.xml</ruleset> <ruleset>${project.parent.basedir}/codestyle/pmd-ruleset.xml</ruleset>
</rulesets> </rulesets>
<excludeRoots> <excludeRoots>
<excludeRoot>target/generated-sources/</excludeRoot> <excludeRoot>target/generated-sources/</excludeRoot>