J'essaie de déterminer où se trouve le fichier de jeu de règles par défaut, le nom du fichier de jeu de règles par défaut et comment y ajouter nos propres règles. J'ai essayé de google, mais cela me déroute. Jusqu'à présent, j'ai mis le plugin pmd dans le dossier plugins Eclipse et dans les préférences je peux voir PMD.
Le fichier de jeu de règles standard est *. Xml inside pmd-bin-xxxZip /.../ lib/pmd -xxxjar/rulesets/, reportez-vous à http://pmd.sourceforge.net/rules/index.html .
Le fichier de jeu de règles par défaut de PMD Eclipse Plugin se trouve à l'intérieur pmd ___. Jar dans votre {IDE}/plugins /..., mais vous ne devez apporter aucune modification à ce fichier. Ajouter/éditer les règles dans les Préférences Eclipse, toute modification aura priorité sur l'ensemble de règles par défaut.
Après avoir joué avec Ant et PMD pendant un bon bout de temps, c'est la solution complète que j'ai trouvée. Modifiez à votre goût.
Cela définit les répertoires initiaux que j'utilise.
<property name="doc" location="doc" /> <!-- Root for all documentation: -->
<property name="pmddoc" location="${doc}/pmddoc" /> <!-- PMD results -->
Ceci est ma définition de tâche, qui pointe vers la dernière version de PMD à ce moment où je l'ai stockée. Il inclut le Jar PMD lui-même (où toutes les règles sont stockées) et toutes les dépendances de 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's file, which has all the rulesets I need. -->
</fileset>
</classpath>
</taskdef>
Lors de l'initialisation, je crée le dossier de documentation si besoin:
<target name="init">
<mkdir dir="${pmddoc}" />
</target>
... Et enfin, j'ai créé une cible spécifiquement pour créer un rapport PMD au format HTML. C'est ici.
<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>