
pmd pmd_releases/7.27.0
Um analisador de código estático multilíngue extensível.
PMD - analisador de código fonte

PMD é um analisador estático de código multilíngue extensível. Ele encontra falhas comuns de programação como variáveis não utilizadas, blocos catch vazios, criação desnecessária de objetos e assim por diante. Ele se preocupa principalmente com Java e Apex, mas suporta 16 outras linguagens. Ele vem com mais de 400 regras incorporadas. Pode ser estendido com regras personalizadas. Usa JavaCC e Antlr para analisar arquivos fonte em árvores sintáticas abstratas (AST) e executa regras contra elas para encontrar violações. As regras podem ser escritas em Java ou usando uma consulta XPath.
Atualmente, o PMD suporta Java, JavaScript, Salesforce.com Apex e Visualforce, Kotlin, Swift, Modelica, PL/SQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML e XSL. Scala é suportado, mas atualmente não há regras Scala disponíveis.
Além disso, inclui CPD, o detector de cópia e colagem. O CPD encontra código duplicado em Coco, C/C++, C#, CSS, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Julia, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PL/SQL, Python, Ruby, Salesforce.com Apex e Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML e XSL.
🚀️ Instalação e Uso
Baixe o último zip binário dos releases e extraia em algum lugar.
Execute bin/pmd check ou bin\pmd.bat check.
Veja também Getting Started
Demonstração:
Isso mostra como o PMD analisa openjdk:

Existem plugins para Maven e Gradle, bem como para várias IDEs. Veja Tools / Integrations
ℹ️ Como obter suporte?
- Como faço? -- Faça uma pergunta no StackOverflow ou nas discussões.
- Recebi este erro, por quê? -- Faça uma pergunta no StackOverflow ou nas discussões.
- Recebi este erro e tenho certeza de que é um bug -- abra um issue.
- Tenho uma ideia/solicitação/pergunta -- crie uma nova discussão.
- Tenho uma pergunta rápida -- pergunte em nossa sala Gitter ou em nosso PMD Guru no Gurubase.
- Onde está sua documentação? -- https://docs.pmd-code.org/latest/
🤝️ Contribuindo
Pull requests são bem-vindos. Para mudanças significativas, abra um issue primeiro para discutir o que você gostaria de alterar.
Nossa fonte mais recente do PMD pode ser encontrada no GitHub. Faça um fork!
Para detalhes, veja How to contribute to PMD.
O designer de regras é desenvolvido em pmd/pmd-designer. Por favor, veja seu README para documentação do desenvolvedor.
💵️ Contribuidores Financeiros
Torne-se um contribuidor financeiro e ajude a sustentar nossa comunidade. Contribua
✨️ Contribuidores
Este projeto segue a especificação all-contributors. Contribuições de qualquer tipo são bem-vindas!
Veja créditos para a lista completa.