
pmd pmd_releases/7.27.0
확장 가능한 다국어 정적 코드 분석기입니다.
PMD - 소스 코드 분석기

PMD는 확장 가능한 다중 언어 정적 코드 분석기입니다. 사용하지 않는 변수, 빈 catch 블록, 불필요한 객체 생성 등과 같은 일반적인 프로그래밍 결함을 찾아냅니다. 주로 Java 및 Apex를 대상으로 하지만, 16개의 다른 언어를 지원합니다. 400개 이상의 내장 규칙이 함께 제공됩니다. 사용자 정의 규칙으로 확장할 수 있습니다. JavaCC와 Antlr을 사용하여 소스 파일을 추상 구문 트리(AST)로 파싱하고 규칙을 실행하여 위반 사항을 찾습니다. 규칙은 Java 또는 XPath 쿼리를 사용하여 작성할 수 있습니다.
현재 PMD는 Java, JavaScript, Salesforce.com Apex 및 Visualforce, Kotlin, Swift, Modelica, PL/SQL, Apache Velocity, JSP, WSDL, Maven POM, HTML, XML, XSL을 지원합니다. Scala도 지원되지만, 현재 사용 가능한 Scala 규칙은 없습니다.
또한 CPD(Copy-Paste-Detector)가 포함되어 있습니다. CPD는 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 및 Visualforce, Scala, Swift, T-SQL, Typescript, Apache Velocity, WSDL, XML, XSL에서 중복 코드를 찾습니다.
🚀️ 설치 및 사용법
최신 바이너리 zip 파일을 릴리스 페이지에서 다운로드하여 원하는 위치에 압축을 풉니다.
bin/pmd check 또는 bin\pmd.bat check를 실행하세요.
또한 시작하기를 참조하세요.
데모:
PMD가 openjdk를 분석하는 방법을 보여줍니다:

Maven 및 Gradle용 플러그인과 다양한 IDE용 플러그인이 있습니다. 도구 / 통합을 참조하세요.
ℹ️ 지원 받는 방법?
- 방법을 알고 싶으신가요? -- StackOverflow 또는 토론에서 질문하세요.
- 이 오류가 발생했습니다. 이유가 무엇인가요? -- StackOverflow 또는 토론에서 질문하세요.
- 이 오류가 발생했고 버그라고 확신합니다 -- 이슈를 제출하세요.
- 아이디어/요청/질문이 있습니다 -- 새로운 토론을 생성하세요.
- 빠른 질문이 있습니다 -- Gitter 방 또는 Gurubase의 PMD Guru에 질문하세요.
- 문서는 어디에 있나요? -- https://docs.pmd-code.org/latest/
🤝️ 기여하기
풀 리퀘스트는 환영합니다. 주요 변경 사항의 경우, 먼저 이슈를 열어 변경할 내용에 대해 논의해 주세요.
최신 PMD 소스는 GitHub에서 확인할 수 있습니다. 포크하세요!
자세한 내용은 PMD에 기여하는 방법을 참조하세요.
규칙 디자이너는 pmd/pmd-designer에서 개발됩니다. 개발자 문서는 해당 README를 참조하세요.
💵️ 재정 기여자
재정 기여자가 되어 커뮤니티를 유지하는 데 도움을 주세요. 기여하기
✨️ 기여자
이 프로젝트는 all-contributors 명세를 따릅니다. 모든 종류의 기여를 환영합니다!
전체 목록은 크레딧을 참조하세요.