@codacy/tools-pmd-6
v0.1.1
Published
Pmd tool adapter for Codacy analysis
Downloads
213
Readme
@codacy/tools-pmd-6
Table of Contents
Overview
PMD 6 adapter for Codacy analysis. PMD is a multi-language static analysis tool that finds common programming flaws such as unused variables, empty catch blocks, and unnecessary object creation. This adapter wraps PMD 6.55.0 (the final 6.x release) as a CLI child process.
| Property | Value |
| ------------- | ---------------------------------------------------------------------------- |
| Tool ID | PMD |
| Codacy UUID | 9ed24812-b6ee-4a58-9004-0ed183c45b8f |
| Strategy | CLI (child process, JVM-based) |
| Languages | Java, Javascript, PLSQL, XML, Apex, Velocity, VisualForce, JSP |
| File patterns | **/*.java, **/*.js, **/*.sql, **/*.xml, **/*.cls, **/*.jsp, etc. |
| Runtime | Java 8+ |
Updating patterns
# Re-fetch pattern metadata from the Codacy API
pnpm prefetch
# Commit the result
git add src/patterns.jsonUpdating the PMD version
PMD 6.55.0 is the final PMD 6.x release. No further updates will be made to PMD 6.
For PMD 7.x, see the pmd-7 adapter package.
Development
pnpm build # Build with tsup
pnpm test # Run testsTo run integration tests, ensure Java 8+ and the PMD 6 distribution are available on your PATH. Tests requiring the real binary are automatically skipped when PMD is not present.
Notes for maintainers
- CLI entry point differs from PMD 7: PMD 6 uses
bin/run.sh pmd ...(withpmdas the first argument torun.sh), while PMD 7 usesbin/pmd check .... - Fail flag syntax: PMD 6 uses
--fail-on-violation false(flag + value), while PMD 7 uses--no-fail-on-violation(single flag). - No progress bar flag: PMD 6 does not support
--no-progress. - Filtered extensions:
.jsx,.jsm, and.vuefiles are filtered out before analysis because PMD 6's JavaScript engine (Mozilla Rhino) cannot parse them. - Language terse names: PMD 6 uses
vmfor Velocity andvffor VisualForce (PMD 7 usesvelocityandvisualforce). This affects pattern ID matching. - No Kotlin/Swift/TypeScript: These languages were added in PMD 7 only.
- JSON output: The
processingErrorsandconfigurationErrorsfields may be absent in PMD 6's JSON output (they are optional in the adapter's type definition).
