PMD는 확장 가능한 다국어 정적 코드 분석기입니다. 사용되지 않는 변수, 빈 catch 블록, 불필요한 객체 생성 등과 같은 일반적인 프로그래밍 결함을 찾아냅니다. 주로 Java 및 Apex 와 관련이 있지만 16개의 다른 언어를 지원합니다 . 400개 이상의 기본 제공 규칙이 제공됩니다. 사용자 정의 규칙을 사용하여 확장할 수 있습니다. JavaCC 및 Antlr을 사용하여 소스 파일을 추상 구문 트리(AST)로 구문 분석하고 이에 대한 규칙을 실행하여 위반 사항을 찾습니다. 규칙은 Java로 작성하거나 XPath 쿼리를 사용하여 작성할 수 있습니다.
현재 PMD는 Java, JavaScript, Salesforce.com Apex 및 Visualforce, Kotlin, Swift, Modelica, PLSQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML 및 XSL을 지원합니다. Scala는 지원되지만 현재 사용 가능한 Scala 규칙은 없습니다.
또한 복사-붙여넣기 감지기인 CPD 가 포함되어 있습니다. CPD는 Coco, C/C++, C#, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Julia, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL에서 중복된 코드를 찾습니다. , Python, Ruby, Salesforce.com Apex 및 Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML 및 XSL.
릴리스에서 최신 바이너리 zip을 다운로드하고 어딘가에 추출하십시오.
bin/pmd check
또는 binpmd.bat check
실행하십시오.
시작하기도 참조하세요.
데모:
이는 PMD가 openjdk를 분석하는 방법을 보여줍니다.
Maven 및 Gradle은 물론 다양한 IDE용 플러그인도 있습니다. 도구/통합 보기
풀 요청을 환영합니다. 주요 변경사항의 경우 먼저 이슈를 열어 변경하고 싶은 사항에 대해 논의하세요.
PMD의 최신 소스는 GitHub에서 찾을 수 있습니다. 우리를 포크하세요!
규칙 디자이너는 pmd/pmd-designer에서 개발되었습니다. 개발자 문서는 README를 참조하세요.
재정적인 기부자가 되어 지역 사회를 유지하는 데 도움을 주세요. 기여하다
이 프로젝트는 모든 기여자 사양을 따릅니다. 어떤 종류의 기여도 환영합니다!
전체 목록은 크레딧을 참조하세요.
BSD 스타일