PMD can be integrated through some of the Continuous Integration tools that exist now.This page lists some plugins to do so. If you think, something is missing here, pleaselet us know.
Note:The tools are listed in alphabetical order without rating.
In general, if PMD is integrated via build tools likeMaven orGradle you can configure your build to fail if there are violations.This will also mark your CI pipeline as failed. That means, PMD can be used even without aspecial plugin for your CI solution.
However, having an extra plugin can provide better developer experience: Some plugins providea nice graph over the found violations, so that you can see immediately the status of your buildconcerning rule violations. Or it provides access to PMD’s report in an easier way by integratingthe report into the CI interface.Other plugins display rule violations directly inline in your codebase as annotationsor provide automated code review by adding comments to pull/merge requests.
There are two apps forAtlassian Bamboo in the marketplace.These display violations found by PMD and duplications found by CPD directly in job-build view.
PMD provides its own GitHub Action, that can be integrated in custom workflows.
It can execute PMD with your own ruleset against your project. It creates aSARIF report which is uploaded as abuild artifact. Furthermore, the build can be failed based on the number of violations.
The action can also be used as a code scanner to create “Code scanning alerts”.
GitLab provides support for various code scanning tools. The results(e.g. number of violations) are displayed for merge requests, pipeline runs and for the entire project ascode quality.
GitLab requires a specific report format, which PMD doesn’t support natively. Therefore, there is acomponent required to convert a PMD report into GitLab’sCode Quality report format.
Additionally, GitLab supports various analyzers forStatic Application Security Testing (SAST).Among these analyzers is alsopmd-apex analyzer.
Ullrich Hafner developed theWarnings Next Generation plugin for Jenkins. It supportsPMD among many other linting tools.