CloneWorks vs PMD
CloneWorks
github.comPMD
pmd.github.ioSide by side
| Figure | CloneWorks | PMD |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Code Clone Detection Tools | 7.9 (#4) | 8.1 (#3) |
| Languages | The input builder lists Java, C, C++, C#, and Python as supported input languages. | PMD focuses mainly on Java and Apex and supports 16 other languages, including JavaScript, Kotlin, Swift, and XML. |
| Purpose | CloneWorks prepares source code and detects code clones in the prepared fragments. | PMD is an extensible cross-language static code analyzer that finds common programming flaws. |
| Support | Jeffrey Svajlenko invites questions and bug reports by email and says he is happy to assist with using CloneWorks. | The project directs users to Stack Overflow for questions, GitHub issues for suspected bugs or requests, and Gitter for quick questions. |
Plans
In their own words
CloneWorks
CloneWorks prepares source code into fragments and detects code clones in those fragments. It supports Linux, macOS, and Windows, with a token-based detection method and repository-level scan scope. Its input builder supports Java, C, C++, C#, and Python, and can extract blocks, functions, or files. The detector accepts a minimum similarity threshold from 0.0 to 1.0; the repository describes a Type-3 clone-detection test run. When an index exceeds available memory, a partitioned partial-index mode is available, though the README says its partition size must be determined experimentally. CloneWorks requires FreeTXL 10.6 or later, gcc, make, and Java 7 or later. The input builder runs more slowly on Cygwin because process creation is slower on Windows. It is free to use, with acknowledgement required; copies, modifications, and derivatives must remain under the license and be distributed without charge. The license also provides the software as-is without warranty.
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.