Table of Contents

The following pages and posts are tagged with

TitleTypeExcerpt
Adding PMD support for a new ANTLR grammar based language Page How to add a new language to PMD using ANTLR grammar.
Adding PMD support for a new JavaCC grammar based language Page How to add a new language to PMD using JavaCC grammar.
How to add a new CPD language Page How to add a new language module with CPD support.
Building PMD with Eclipse Page Import PMD Project Download the latest Eclipse IDE for Enterprise Java and Web Developers Install it by extracting it into a directory of your choice Start eclipse. You’ll be asked for a workspace. It’s recommended to use an extra, separate new workspace for PMD, because...
Building PMD from source Page Compiling PMD JDK 11 or higher Note: While Java 11 is required for building, running PMD only requires Java 8. You’ll need to either check out the source code or download the latest source release. Assuming you’ve got the...
Building PMD General Info Page Before Development Ensure that Git and Java JDK >= 11 are installed. You can get a OpenJDK distribution from e.g. Adoptium. Note: While Java 11 is required for building, running PMD only requires Java 8. Fork the PMD repository on GitHub as explained...
Building PMD with IntelliJ IDEA Page Import PMD Project Download the Community Edition of IntelliJ IDEA from https://www.jetbrains.com/idea/download/other.html. Install it, that means, extract the archive Start it with bin/idea.sh In the startup dialog, choose the button Open and select the folder, into which PMD’s repository has been cloned. Then...
Building PMD with Netbeans Page Import PMD Project This needs to be done only once. Install Apache Netbeans Select File > Open Project… and choose the already checked out PMD source folder. After a while, you should see under “Projects > PMD > Modules” all the modules. You can then open individual...
Building PMD with VS Code Page Warning: It is not recommend to use VS Code for developing. See Known Issues below. Import PMD Project This needs to be done only once. Install Visual Studio Code Select File > Open Folder… and choose the already checked out PMD...
Contributor's Guide Page How to contribute to PMD
Developer Resources Page Source Code The complete source code can be found on GitHub: github.com/pmd/pmd - main PMD repository. Includes all the code to support all languages, including this documentation. github.com/pmd/pmd.github.io - Contains the landing page https://pmd.github.io github.com/pmd/build-tools - Contains the checkstyle rules we use github.com/pmd/pmd-designer...
How PMD Works Page Processing overview of the different steps taken by PMD.
Logging Page Logging API is slf4j PMD uses slf4j as the logging API internally. Logging can be done also in (Java-based) rules. In order to log, get a logger. Usually the logger is stored in a static final field called LOG: private...
Newcomers' Guide Page This is a small guide for GSoC Students and new contributors. 1. Check out PMD As you want to engage with PMD, your first task is, to find out what PMD is - if you didn’t do this already. Read the webpage, install PMD with the Installation...
Pmdtester Page Introduction Pmdtester is a regression testing tool that ensures no new problems and unexpected behaviors will be introduced to PMD after fixing an issue. It can also be used to verify, that new rules work as expected. It has been integrated into travis CI and is actually used automatically...
Roadmap Page TODO: Update Future direction projects, plans Google Summer of Code Future directions Want to know what’s coming? Or, better, wanna contribute ? Here is the page listing what are our plans - when we have ones, for the future of PMD. It also give you hints at...
Rule deprecation policy Page Describes when and how rules are deprecated
Guidelines for standard rules Page Guidelines for rules that are included in the standard distribution
Writing documentation Page PMD's documentation uses [Jekyll](https://jekyllrb.com/) with the [I'd rather be writing Jekyll Theme](http://idratherbewriting.com/documentation-theme-jekyll/index.html). Here are some quick tips. ## Format The pages are in general in [Github Flavored Markdown](https://kramdown.gettalong.org/parser/gfm.html). ## Structure The documentation sources can be found in two places based on how they are generated: - the ones that are...