Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

How to contribute to PMD

First off, thanks for taking the time to contribute!

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

You can find the code of conduct in the file

NB: the rule designer is developed over at pmd/pmd-designer. Please refer to the specific contributor documentation if your issue, feature request or PR touches the designer.

Pull requests

  • Please create your pull request against the master branch. We will rebase/merge it to the maintenance branches, if necessary.

  • We are using checkstyle to enforce a common code style. The check is integrated into the default build - so, make sure, you can build PMD without errors. See code style for more info.

Bug reports

We use the issue tracker on Github. Please report new bugs at

When filing a bug report, please provide as much information as possible, so that we can reproduce the issue:

  • The name of the rule, that is buggy
  • A code snippet, which triggers a false positive/negative or crash
  • How do you execute PMD? (command line, ant, maven, gradle, other)


There is some documentation available under Feel free to create a bug report if documentation is missing, incomplete or outdated. See Bug reports.

The documentation is generated as a Jekyll site, the source is available at: You can find build instructions there. For more on contributing documentation check


There are various channels, on which you can ask questions:

Code Style

PMD uses checkstyle to enforce a common code style.

See pmd-checkstyle-config.xml for the configuration and the eclipse configuration files that can be imported into a fresh workspace.

Add yourself as contributor

We use All Contributors.

To add yourself to the table of contributors, follow the bot usage instructions ;).

Or use the CLI:

  1. Install the CLI: npm i (in PMD's top level directory)
  2. Add yourself: npx all-contributors add <username> <contribution>

Where username is your GitHub username and contribution is a ,-separated list of contributions. See Emoji Key for a list of valid types. Common types are: "code", "doc", "bug", "blog", "talk", "test", "tutorial".

See also cli documentation