Ich versuche herauszufinden, wo sich die Standard-Regelsatzdatei befindet, wie die Standard-Regelsatzdatei heißt und wie wir ihr unsere eigenen Regeln hinzufügen können. Ich habe versucht zu googeln, aber das verwirrt mich nur. Bisher habe ich das pmd-Plugin in den Eclipse-Plugins-Ordner gelegt und in den Einstellungen kann ich PMD sehen.
Antworten
Zu viele Anzeigen?Die Standardregelsatzdatei lautet *.xml innerhalb pmd-bin-x.x.x.zip/.../lib/pmd-x.x.x.jar/rulesets/ , beziehen sich auf http://pmd.sourceforge.net/rules/index.html .
Die Standardregelsatzdatei von PMD Eclipse-Plugin ist innen pmd___.jar in Ihrem {IDE}/plugins/... Sie sollten jedoch keine Änderungen an dieser Datei vornehmen. Hinzufügen/Ändern der Regeln in Eclipse Preferences, haben alle Änderungen Vorrang vor dem Standard-Regelsatz.
Nachdem ich eine ganze Weile mit Ant und PMD herumgespielt habe, ist dies die vollständige Lösung, die ich gefunden habe. Ändern Sie sie nach Ihrem eigenen Geschmack.
Dies legt die anfänglichen Verzeichnisse fest, die ich verwende.
<property name="doc" location="doc" /> <!-- Root for all documentation: -->
<property name="pmddoc" location="${doc}/pmddoc" /> <!-- PMD results -->
Dies ist meine Aufgabendefinition, die auf die neueste Version von PMD verweist, die ich zur Zeit gespeichert habe. Sie umfasst das PMD Jar selbst (wo alle Regeln gespeichert sind) und alle PMD-Abhängigkeiten.
<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's file, which has all the rulesets I need. -->
</fileset>
</classpath>
</taskdef>
Bei der Initialisierung erstelle ich bei Bedarf den Dokumentationsordner:
<target name="init">
<mkdir dir="${pmddoc}" />
</target>
...Und schließlich habe ich ein Ziel speziell für die Erstellung eines PMD-Berichts in HTML-Form erstellt. Hier ist es.
<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's .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>