Как работать с правилами PMD. Где поместить этот файл xml и запустить против моего приложения?Работа с правилами PMD
ответ
Если вы используете Eclipse, посмотрите на один вопрос.
Здесь муравей задача создания отчета PMD (вам нужно будет заменить свойства согласно структуре проекта):
<target name="create-pmd-report" description="Generates a PMD report">
<fail unless="target.reports.pmd" message="target.reports.pmd not set"/>
<delete dir="${target.reports.pmd}"/>
<mkdir dir="${target.reports.pmd}"/>
<pmd rulesetfiles="src/main/resources/pmd/ruleset.xml">
<formatter type="xml" toFile="${target.reports.pmd}/pmd-report.xml" linkPrefix="${src.main}/"/>
<fileset dir="${src.main}">
<include name="**/*.java"/>
</fileset>
</pmd>
<xslt
in="${target.reports.pmd}/pmd-report.xml"
style="${pmd.home}/etc/xslt/pmd-report.xslt"
out="${target.reports.pmd}/pmd-report.html"
/>
</target>
Перейдите в раздел Windows-> Настройки в Eclipse, чтобы проверить, установлен ли PMD.
Если нет, то нажмите «Справка» - «Установить новое программное обеспечение» -> поместите эту ссылку http://pmd.sourceforge.net/eclipse
и добавьте ее. Он установит для вас правила PMD.
Если у вас есть собственные правила PMD для работы с вашим кодом. Затем щелкните правой кнопкой мыши свой проект -> PMD-> очистите все правила и добавьте PMD xml, который у вас есть, и нажмите OK.
Затем щелкните правой кнопкой мыши ваш проект-> PMD-> Проверить код с PMD. Он расскажет вам об ошибках. Как только вы очистите voilations, есть также возможность генерировать отчет. Что говорит о том, что ваш код чист и нет вокалов
Просто для полноты картины, если вы используете Maven.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.5</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>false</linkXref>
<failOnViolation>true</failOnViolation>
<failurePriority>1</failurePriority>
<rulesets>
<ruleset>${pom.basedir}/pmd-rulesets.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
Я написал tutorial об этом некоторое время назад с некоторой sample code.