PMD scans Java source code and looks for potential problems like:
- Possible bugs - empty try/catch/finally/switch statements
- Dead code - unused local variables, parameters and private methods
- Suboptimal code - wasteful String/StringBuffer usage
- Overcomplicated expressions - unnecessary if statements, for loops that could be while loops
- Duplicate code - copied/pasted code means copied/pasted bugs
- ANT & PMD, How to Run Findbugs, Pmd, Checkstyle, JUnit and Cobertrua with an Ant Build-Script?
- PMD, Sourceforge Homepage.