Файл набора правил PMD
Я новичок в PMD. Я пытаюсь понять, где находится файл правил по умолчанию, имя файла набора правил по умолчанию и как мы добавляем к нему свои собственные правила. Я попробовал Google, но это меня просто сбивает с толку. До сих пор я добавил плагин pmd в папку плагинов eclipse, и в настройках я вижу PMD.
Может кто-нибудь угодить мне этим?
Спасибо,
Ниша
Ответы
Ответ 1
Стандартный файл набора правил *. xml внутри pmd-bin-x.x.x.zip/.../lib/pmd-x.x.x.jar/rulesets/,
обратитесь к http://pmd.sourceforge.net/rules/index.html.
Файл правил по умолчанию PMD Eclipse Plugin находится внутри pmd ___. jar в ваш {IDE}/plugins/..., но вы не должны вносить какие-либо изменения в этот файл. Добавить/изменить правила в настройках Eclipse, любые изменения будут иметь приоритет над набором правил по умолчанию.
Ответ 2
После долгой работы с Ant и PMD, это полное решение, которое я придумал. Измените свой вкус.
Это устанавливает исходные каталоги, которые я использую.
<property name="doc" location="doc" /> <!-- Root for all documentation: -->
<property name="pmddoc" location="${doc}/pmddoc" /> <!-- PMD results -->
Это мое определение задачи, которое указывает на последнюю версию PMD в это время, когда я ее храню. Он включает сам PMD Jar (где хранятся все правила) и все зависимости PMD.
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
<classpath>
<fileset dir="C:\development\pmd-bin-5.0-alpha">
<include name="lib/*.jar"/> <!-- also includes pmd file, which has all the rulesets I need. -->
</fileset>
</classpath>
</taskdef>
При инициализации я создаю папку документации при необходимости:
<target name="init">
<mkdir dir="${pmddoc}" />
</target>
... И, наконец, я создал цель специально для создания отчета PMD в HTML-форме. Вот оно.
<target name="pmd" depends="init">
<pmd>
<formatter type="html" toFile="${pmddoc}/pmd_src_report.html" toConsole="true"/>
<ruleset>rulesets/java/basic.xml</ruleset> <!-- references file in PMD .jar -->
<!-- Files PMD will test. -->
<fileset dir="${src}">
<include name="**/*.java"/> <!-- required to avoid firing off .aj errors. This ruleset doesn't support AspectJ. -->
</fileset>
</pmd>
</target>