Running PMD via command line

  • Type run [filename] [report format] [ruleset file], i.e:


  • C:\tmp\pmd-1.5\pmd\etc>run c:\data\pmd\pmd\test-data\Unused1.java xml rulesets/unusedcode.xml
    <?xml version="1.0"?><pmd>
    <file name="c:\data\pmd\pmd\test-data\Unused1.java">
    <violation line="5" rule="UnusedLocalVariable">
    Avoid unused local variables such as 'fr'
    </violation>
    </file></pmd>
    
    C:\tmp\pmd-1.5\pmd\etc>
        
  • If you are using JDK 1.3 or you just want to run PMD without the batch file, you can do a:
  • C:\data\pmd\pmd>java -cp lib\pmd-1.5.jar;lib\xercesImpl-2.0.2.jar;
                        lib\xmlParserAPIs-2.0.2.jar;lib\jaxen-core-1.0-fcs.jar;lib\saxpath-1.0-fcs.jar
                         net.sourceforge.pmd.PMD
                         c:\j2sdk1.4.1_01\src\java\lang xml
                         rulesets/imports.xml
           


  • Notice that in this case the output is in XML, so you can redirect it to a file and XSLT it or whatever
  • The command line interface also accepts the following optional arguments:
    • -debug - prints a stacktrace if an error is encountered
    • -shortnames - puts shortened names in the report. This only works if the filename argument is a single directory