An extensible multilanguage static code analyzer that finds common programming flaws and duplicated code across 20+ languages.
PMD is an extensible multilanguage static code analyzer that scans source code to identify common programming flaws like unused variables, empty catch blocks, and unnecessary object creation. It supports over 20 programming languages, including Java, JavaScript, Kotlin, and Swift, and includes a copy-paste detector (CPD) to find duplicated code.
Developers and teams working on multilanguage projects who need automated code quality checks, especially those using Java, Apex, or other supported languages for enterprise or open-source software.
PMD offers a highly extensible framework with 400+ built-in rules and support for custom rule creation, making it a versatile choice for teams needing tailored static analysis across multiple programming languages.
An extensible multilanguage static code analyzer.
Analyzes over 20 languages including Java, JavaScript, and Swift, with built-in rules for many, making it versatile for multilanguage codebases as noted in the README.
Comes with 400+ pre-configured rules for common flaws like unused variables and empty catch blocks, reducing manual code review effort as highlighted in the features.
Includes CPD to find duplicated code across 30+ languages, aiding in maintaining code quality and reducing redundancy, as specified in the README.
Allows custom rule creation using Java or XPath queries, enabling teams to tailor analysis to project-specific needs, per the extensible architecture description.
Core focus is on Java and Apex, with limited or no rules for some supported languages like Scala, reducing effectiveness for non-Java projects as admitted in the README.
Requires downloading and extracting binaries rather than simple package manager installs, which can be cumbersome for CI/CD integration compared to tools like ESLint or Pylint.
AST-based analysis can generate noise, requiring manual rule tuning to avoid irrelevant warnings, a common trade-off in static analysis tools not explicitly addressed in documentation.
Alibaba Java Coding Guidelines pmd implements and IDE plugin
A static analyzer for Java, C, C++, and Objective-C
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.
Catch common Java mistakes as compile-time errors
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.