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 ответ:
Я решил эту проблему, просто добавив плагины в разделе сборки вместе с теми, что находятся в разделе отчетов.
Каким-то образом он должен был быть в том же, чтобы иметь возможность запускать все наборы правил. Ранее у меня сложилось впечатление, что мы помещаем плагины в сборку только в том случае, если хотим запустить их на этапе сборки и развертывания.