PMD VS Checkstyle

Compare PMD vs Checkstyle and see what are their differences.

Checkstyle

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program. (by checkstyle)
Our great sponsors
  • Mergify - Automate your Pull Request with Mergify
  • Scout APM - Less time debugging, more time building
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
PMD Checkstyle
16 12
3,836 7,036
1.0% 1.2%
9.8 9.9
8 days ago 6 days ago
Java Java
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

PMD

Posts with mentions or reviews of PMD. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-30.
  • After Java tutorials, now what???
    5 projects | reddit.com/r/javahelp | 30 Apr 2022
    - PMD Static Code Analysis tool: https://pmd.github.io/
  • Ask HN: What is a modern Java environment?
    22 projects | news.ycombinator.com | 29 Mar 2022
    PMD, Spotbugs, Nullaway: Java linting/static analysis (https://pmd.github.io, https://spotbugs.github.io, https://github.com/uber/NullAway)
  • Code smell plugin
    2 projects | reddit.com/r/javahelp | 15 Feb 2022
    PMD, and checkstyle as well.
  • Writing Clean and Consistent Code with Static Analysis using PMD and Apex
    6 projects | dev.to | 28 Jan 2022
    Nearly every programming language has a static analyzer of its own. For example, golang has gofmt, which is baked into the standard tooling, while Ruby has Rubocop, a community-led project. Even compiled languages like C have their own static analyzer through astyle. However, it can be difficult (and tedious) to run several analyzers across polyglot projects. Fortunately, that’s where a project like PMD can be of assistance. PMD is a static analyzer that allows you to define a standard set of rules that can be applied over multiple languages.
    6 projects | dev.to | 28 Jan 2022
    Open up the config/ruleset.xml file, and you’ll find an XML document that lists several rules. These rules map to the issues which PMD will report on. Believe it or not, there are hundreds of Apex rules, and you can find the full set at the PMD repo. You have complete control over which rules to enable. Typically, you’d determine which ones are important by agreeing with your teammates on the ones that matter most. After all, their code will be statically analyzed, too!
  • Is there a tool to track CVEs for the software that we use?
    8 projects | reddit.com/r/sysadmin | 14 Dec 2021
    While at it you could also point them to static code analyzers such as error_prone, spotbugs and pmd (use all 3 at once - they complement each other in detecting different issues).
  • How to setup CI/CD for org-based development?
    2 projects | reddit.com/r/salesforce | 10 Dec 2021
    For PMD specifically, we use the PMD command line tool (Github) and wire it together with some bash scripting. Most pipelines will allow you to write bash as needed. The SFDX scanner command didn't exist when we implemented this, you might be able to use that instead.
  • Is it possible to measure spaghettiness of code?
    4 projects | reddit.com/r/AskProgramming | 25 Nov 2021
    This is the definition of cohesion and there are many great tools to calculate cohesion metrics (depending on the programming language e.g Java). Cohesion metrics belong to a bigger set of metrics called OOP metrics (or ck metrics). Check out the following links: https://github.com/mauricioaniche/ck https://github.com/cqfn/jpeek https://github.com/rodhilton/jasome https://github.com/pmd/pmd
  • An Incomplete List of Practical Security for Mortals
    9 projects | dev.to | 6 Jul 2021
    some good tools for general code analysis (Java): Sonarqube, PMD, SpotBugs
  • Does anybody know any good materials for java defensive coding please?.
    4 projects | reddit.com/r/java | 19 Jun 2021

Checkstyle

Posts with mentions or reviews of Checkstyle. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-18.

What are some alternatives?

When comparing PMD and Checkstyle you can also consider the following projects:

Spotbugs - SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.

SonarQube - Continuous Inspection

Error Prone - Catch common Java mistakes as compile-time errors

infer - A static analyzer for Java, C, C++, and Objective-C

SonarJava - :coffee: SonarSource Static Analyzer for Java Code Quality and Security

FindBugs - The new home of the FindBugs project

Spoon - Spoon is a metaprogramming library to analyze and transform Java source code. :spoon: is made with :heart:, :beers: and :sparkles:. It parses source files to build a well-designed AST with powerful analysis and transformation API.