Maven-pmd-plugin использует только комплектные наборы правил


Я использую Maven-pmd-плагин в своем проекте, и вот как я его настроил

<reporting>
 <plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jxr-plugin</artifactId>
    <version>2.3</version>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>2.6</version>
    <configuration>
     <linkXref>true</linkXref>
     <sourceEncoding>UTF-8</sourceEncoding>
     <minimumTokens>100</minimumTokens>
     <targetJdk>${targetJdk}</targetJdk>
       <rulesets>
           <ruleset>${maven.pmd.rulesetfiles}</ruleset>
       </rulesets>
    </configuration>
  </plugin>
 </plugins>
</reporting>

Вот свойства, используемые в приведенной выше конфигурации

<properties>
<spring.version>3.0.6.RELEASE</spring.version>
<basedir>C:UsersQ4workspaceproject</basedir>
<maven.pmd.rulesetfiles>${basedir}pmdRuleset.xml</maven.pmd.rulesetfiles>
<targetJdk>1.5</targetJdk>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Проблема в том, что когда я запускаю mvn pmd:check, он дает мне 8 нарушений-только от базового, unusedcode и импорта. Он просто не использует все правила, которые я перечислил в файле пользовательского набора правил. Я даже пробовал использовать logging-java.xml и строки.xml непосредственно в наборе правил без использования пользовательского набора правил файл и он все еще не работает.

Когда я запускаю mvn pmd: pmd, я получаю успешную сборку, но ошибки все равно появляются в моей целевой папке. Почему я получаю успех сборки здесь?

1 3

1 ответ:

Я решил эту проблему, просто добавив плагины в разделе сборки вместе с теми, что находятся в разделе отчетов.

Каким-то образом он должен был быть в том же, чтобы иметь возможность запускать все наборы правил. Ранее у меня сложилось впечатление, что мы помещаем плагины в сборку только в том случае, если хотим запустить их на этапе сборки и развертывания.