macOS
brew install pmdlocal Homebrew formula metadata
sudo port install pmdMacPorts ports tree · java/pmd/Portfile · source: api.github.com
brew / rank 2184
Source code analyzer for Java, JavaScript, and more. Version 7.29.0 via Homebrew; verified 2026-10-30. Also installable with nix: nix profile install nixpkgs#pmd.
install
brew install pmdlocal Homebrew formula metadata
sudo port install pmdMacPorts ports tree · java/pmd/Portfile · source: api.github.com
nix profile install nixpkgs#pmdnixpkgs package indexes · pkgs/by-name/pm/pmd/package.nix · source: api.github.com
choco install pmdChocolatey community package catalog · pmd · source: community.chocolatey.org
overview
Source code analyzer for Java, JavaScript, and more
history
PMD is an extensible, multilanguage static source-code analyzer. It identifies programming flaws, style problems, suspicious constructs, and duplicated code through built-in or custom rules.
PMD was created in 2002 to detect common problems in Java programs. Subsequent generations added more languages, extensible rules, XPath analysis, copy-paste detection, build-tool integrations, and a redesigned PMD 7 architecture.
The official support lifecycle records PMD 1.0 in November 2002, major lines 2 through 6 between 2004 and 2017, and PMD 7 in March 2024. The project generally supports only its newest major line.
PMD expanded from a Java analyzer into an extensible multilanguage tool. Its official documentation covers command-line use, Maven, Gradle, Ant, CI systems, IDE plugins, and APIs, reflecting adoption across local development and automated builds.
Users run `pmd check` with source paths, a ruleset, and an output format. Teams commonly place the same rulesets in build-tool or CI configuration so local and automated analysis enforce a shared policy.
PMD rules can be written in Java or as XPath expressions over a language's abstract syntax tree. CPD supplies a related workflow for locating duplicated code.
PMD is a classic package-manager static-analysis tool: a standalone CLI backed by a large Java distribution, built-in rulesets, XPath rules, custom Java rules, multiple report formats, and Copy/Paste Detector functionality. It predates most modern linter ecosystems and remains actively maintained.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
pmd | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:pmd |
|---|---|
| Version | 7.29.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/pmd |
| Homepage | https://pmd.github.io |
| Repository | https://github.com/pmd/pmd |
| Upstream docs | https://pmd.github.io |
| License | BSD-4-Clause |
| Source archive | https://github.com/pmd/pmd/releases/download/pmd_releases%2F7.29.0/pmd-dist-7.29.0-bin.zip |
| Last updated | 2026-10-30T14:37:30Z |
| Pulse | updated |
| Dependencies | openjdk |
| Bottle | available (on all) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | pmd |
| Version Scheme | 0 |
| Revision | 0 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
pmd
nix profile install nixpkgs#pmdpmd
sudo port install pmdpmd
choco install pmdsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.