Skip to content
SPECIFICTION
Get listed

jscpd vs PMD

jscpd

jscpd.dev

PMD

pmd.github.io

Side by side

FigurejscpdPMD
Price fromFreeFree
Free planYesYes
Free trial——
Open sourceYes—
WindowsYesYes
macOSYesYes
LinuxYesYes
APIYes—
Self-hostedYesYes
Plans published21
Spec score · Code Clone Detection Tools8.6 (#2)8.1 (#3)
Spec score · Code Duplication Detection Tools8.5 (#2)8.1 (#4)
LanguagesThe site says jscpd supports 224 languages.PMD focuses mainly on Java and Apex and supports 16 other languages, including JavaScript, Kotlin, Swift, and XML.
LicenseThe project and its published packages use the permissive MIT license.The project identifies its license as BSD-style.
Purposejscpd scans source code for duplicate code and can fail a build when duplication exceeds a configured threshold.PMD is an extensible cross-language static code analyzer that finds common programming flaws.

Plans

jscpd

  • jscpdFree
  • jscpd open-source distributionFree

jscpd pricing →

PMD

  • PMDFree

PMD pricing →

In their own words

jscpd

jscpd is a free, open-source tool for finding repeated code in repositories. It can fail a build when duplication exceeds a configured threshold, making it usable in local development and CI. The project says it supports 224 languages. Exact clones are detected by default, while renamed, near-miss, and semantic clone checks are optional; semantic detection is experimental.

Version 5 is available as a self-contained native binary that does not need Node.js, with direct macOS, Linux, and Windows binaries for x64 and ARM64. Reports include HTML, JSON, XML, README badges, SARIF, CodeClimate, and OpenMetrics. The GitHub Action can enforce a threshold and upload SARIF for GitHub Code Scanning, and GitLab CI reporters are documented. Developers can also use pre-commit hooks or Docker. A dashboard summarizes project size, duplication, complexity, dead code, and a health score. Dead-code analysis covers JavaScript, TypeScript, and Python, plus Rust when compiler diagnostics are supplied.

Visit jscpd.dev

PMD

PMD is a free, extensible static code analyzer that checks source code for programming flaws such as unused variables, empty catch blocks, and unnecessary object creation. It includes more than 400 built-in rules, and teams can write custom rules in Java or XPath. Its bundled CPD tool finds duplicated code across many programming languages. PMD checks source directories from the command line and can run as a Maven, Ant, Gradle, or bld build operation. Supported languages include Java, JavaScript, Salesforce Apex and Visualforce, Kotlin, Swift, Modelica, PL/SQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML, and XSL; Scala is supported without Scala rules. It runs on Linux, macOS, and Windows and requires Java 8 or above. For CI, its GitHub Action can create SARIF reports and fail builds based on violation counts; documentation also covers GitLab, Jenkins, and Bamboo integrations. IDE integrations include Eclipse, IntelliJ IDEA, and Visual Studio Code, though some listed plugins are not actively maintained. Only the latest major version is actively developed.

Visit pmd.github.io