##### Overview

- Download PMD 4.2.5
- What's new in PMD 4.2.5
- PMD in the news
- PMD-related products and books
- Best practices
- Future directions
- Similar projects
- Credits
- License
- What does 'PMD' mean?

##### Usage

- Installation
- Command line usage
- Ant task usage
- Maven plugin usage
- Mvn plugin usage
- IDE plugin usage
- Suppressing warnings
- Finding duplicated code
- JSP support

##### Customizing PMD

- Compiling PMD
- How to write a rule
- Writing XPath rules
- How to make a rule set
- How it works
- Rule guidelines

##### For example

- Run PMD on a Sourceforge project

##### Rule Sets

- Index
- Android
- Basic
- Braces
- Code Size
- Clone
- Controversial
- Coupling
- Design
- Finalizers
- Import Statements
- J2EE
- Javabeans
- JUnit Tests
- Logging (Java)
- Logging (Jakarta)
- Migrating
- Naming
- Optimizations
- Strict Exceptions
- Strings
- Sun Security
- Unused Code
- Java Server Pages
- Java Server Faces

##### Project Documentation

- About
- Project Info
- Project Reports
  - JavaDocs
  - JavaDoc Report
  - JavaDoc Warnings Report
  - Source Xref
  - Test Xref
  - Unit Tests
  - Clover
  - File Activity
  - Developer Activity
  - FAQs
  - PMD Report
  - CPD Report
- Development Process

##### Legend

- External Link
- Opens in a new window

## Javadoc Report

      Generating Javadoc
      Javadoc execution
      Loading source files for package net.sourceforge.pmd...
      Loading source files for package net.sourceforge.pmd.ant...
      Loading source files for package net.sourceforge.pmd.ast...
      Loading source files for package net.sourceforge.pmd.cpd...
      Loading source files for package net.sourceforge.pmd.cpd.cppast...
      Loading source files for package net.sourceforge.pmd.dcd...
      Loading source files for package net.sourceforge.pmd.dcd.asm...
      Loading source files for package net.sourceforge.pmd.dcd.graph...
      Loading source files for package net.sourceforge.pmd.dfa...
      Loading source files for package net.sourceforge.pmd.dfa.pathfinder...
      Loading source files for package net.sourceforge.pmd.dfa.report...
      Loading source files for package net.sourceforge.pmd.dfa.variableaccess...
      Loading source files for package net.sourceforge.pmd.jaxen...
      Loading source files for package net.sourceforge.pmd.jsp.ast...
      Loading source files for package net.sourceforge.pmd.jsp.rules...
      Loading source files for package net.sourceforge.pmd.parsers...
      Loading source files for package net.sourceforge.pmd.properties...
      Loading source files for package net.sourceforge.pmd.quickfix...
      Loading source files for package net.sourceforge.pmd.renderers...
      Loading source files for package net.sourceforge.pmd.rules...
      Loading source files for package net.sourceforge.pmd.rules.basic...
      Loading source files for package net.sourceforge.pmd.rules.codesize...
      Loading source files for package net.sourceforge.pmd.rules.design...
      Loading source files for package net.sourceforge.pmd.rules.imports...
      Loading source files for package net.sourceforge.pmd.rules.junit...
      Loading source files for package net.sourceforge.pmd.rules.migration...
      Loading source files for package net.sourceforge.pmd.rules.naming...
      Loading source files for package net.sourceforge.pmd.rules.optimization...
      Loading source files for package net.sourceforge.pmd.rules.regex...
      Loading source files for package net.sourceforge.pmd.rules.strictexception...
      Loading source files for package net.sourceforge.pmd.rules.strings...
      Loading source files for package net.sourceforge.pmd.rules.sunsecure...
      Loading source files for package net.sourceforge.pmd.sourcetypehandlers...
      Loading source files for package net.sourceforge.pmd.stat...
      Loading source files for package net.sourceforge.pmd.symboltable...
      Loading source files for package net.sourceforge.pmd.typeresolution...
      Loading source files for package net.sourceforge.pmd.typeresolution.rules...
      Loading source files for package net.sourceforge.pmd.typeresolution.rules.imports...
      Loading source files for package net.sourceforge.pmd.typeresolution.visitors...
      Loading source files for package net.sourceforge.pmd.util...
      Loading source files for package net.sourceforge.pmd.util.designer...
      Loading source files for package net.sourceforge.pmd.util.filter...
      Loading source files for package net.sourceforge.pmd.util.viewer...
      Loading source files for package net.sourceforge.pmd.util.viewer.gui...
      Loading source files for package net.sourceforge.pmd.util.viewer.gui.menu...
      Loading source files for package net.sourceforge.pmd.util.viewer.model...
      Loading source files for package net.sourceforge.pmd.util.viewer.util...
      Constructing Javadoc information...
      Standard Doclet version 1.6.0_12
      Building tree for all the packages and classes...
      src/net/sourceforge/pmd/rules/ConstructorCallsOverridableMethod.java:44: warning - @todo is an unknown tag.
      src/net/sourceforge/pmd/rules/ConstructorCallsOverridableMethod.java:44: warning - @todo is an unknown tag.
      src/net/sourceforge/pmd/rules/ConstructorCallsOverridableMethod.java:768: warning - @todo is an unknown tag.
      src/net/sourceforge/pmd/symboltable/NameOccurrence.java:84: warning - @return tag has no arguments.
      Generating target/docs/apidocs/serialized-form.html...
      Copying file /home/xlv/.maven/cache/maven-javadoc-plugin-1.9/plugin-resources/stylesheet.css to file target/docs/apidocs/stylesheet.css...
      Building index for all the packages and classes...
      Building index for all classes...
      Generating target/docs/apidocs/help-doc.html...
      4 warnings