Best Practices

Choose the rules that are right for you

Running every ruleset will result in a huge number of rule violations, most of which will be unimportant. Having to sort through a thousand line report to find the few you're really interested in takes all the fun out of things.

Instead, start with some of the obvious rulesets - just run unusedcode and fix any unused locals and fields. Then, run basic and fix all the empty if statements and such-like. Then peruse the design and controversial rulesets and use the ones you like via a custom ruleset.

PMD rules are not set in stone

Generally, pick the ones you like, and ignore the warnings you don't like. It's just a tool.

Also, you can tell PMD to ignore a line (i.e., not produce any warnings for that line) by using the "NOPMD" marker, like this:

               if (something) {
                 // NOPMD
               }
           

PMD IDE plugins are nice

Using PMD within your IDE is much more enjoyable than flipping back and forth between an HTML report and your IDE. Most IDE plugins have the "click on the rule violation and jump to that line of code" feature. Find the PMD plugin for your IDE, install it, and soon you'll be fixing problems much faster.

Suggestions? Comments? Post them here. Thanks!