Отказ PMD: ILogin: 73 Правило: ConstantsInInterface Приоритет: 3 Избегайте констант в интерфейсах - PullRequest
0 голосов
/ 13 июня 2019

Может кто-нибудь сказать мне, как исключить некоторые интерфейсы из анализа PMD, используя maven. Я получаю следующее исключение при сборке maven.

Отказ PMD: ILogin $ RetrieveLoginInfo_: 4 Правило: ConstantsInInterface Приоритет: 3 Избегайте констант в интерфейсах. Интерфейсы определяют типы, константы - это детали реализации, лучше размещенные в классах или перечислениях. См. Эффективная Java, пункт 19 .. [

Я добавил exclude-pmd.properties в свойствах pom. Это моя запись в свойствах pom.xml.

<pmd.excludeFromFailureFile>${project.basedir}/src/etc/exclude-pmd.properties</pmd.excludeFromFailureFile>

запись exclude-pmd.properties:

com.login.ILogin=ConstantsInInterface Priority:3 Avoid constants in interfaces.

Интерфейс:

public interface ILogin {
    interface RetrieveLoginInfo_ {
    int STATUS=0
    }
    }

Но Maven не исключает интерфейс ILogin из анализа PMD.

1 Ответ

0 голосов
/ 13 июня 2019

Во-первых, структура вашего exclude-pmd.properties неверна.Согласно https://maven.apache.org/plugins/maven-pmd-plugin/examples/violation-exclusions.html

Вы должны использовать имя правила в качестве значения (через запятую), поэтому в этом случае оно должно выглядеть следующим образом:

com.login.ILogin=ConstantsInInterface

При этомЯ думаю, что вы ожидаете другого поведения от этого свойства.

Это просто предотвратит сбой задачи pmd:check, если сообщается только о нарушении в этом файле.Он не будет игнорировать файл из анализа.Он предназначен главным образом как способ постепенного включения PMD в устаревшем проекте.

Возможно, вам следует использовать другой подход для описанного вами варианта использования.

  1. Вы можете просто отключить это предупреждениев исходном коде, следуя https://pmd.github.io/pmd-6.15.0/pmd_userdocs_suppressing_warnings.html
  2. Вы можете фактически игнорировать файл из анализа (для всех правил!) через пользовательский набор правил, следуя https://pmd.github.io/pmd-6.15.0/pmd_userdocs_making_rulesets.html#filtering-the-processed-files
...