OSS探訪GitHubでログイン

ASTと400超のruleでJavaを含む複数言語のbug・design・code smellを検出する

OSS規模スコア 310.1OSS健全度 100
スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
5,494
主要言語
Java
ライセンス
未判定
リポジトリ最終更新
2026/10/04
ページ内ナビ

概要

PMDはextensibleなmulti-language static code analyzerです。Java/Apexを中心に多数の言語を解析し、400超のbuilt-in rule、Java/XPathによるcustom rule、duplicate codeを検出するCPDを提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

AST上で400超のbuilt-in ruleを実行する

READMEはunused variable、empty catch、unnecessary object creation等のprogramming flawを検出し、Java/Apexを中心に多数の言語をサポートすると説明しています。

出典:[2]

Java/XPath custom ruleとCPDでanalysisを拡張する

sourceをASTへparseし、ruleをJavaまたはXPathで実装できます。CPDはJavaを含む多数言語のduplicate codeを検出します。

出典:[2]

向いている用途

code smell・design・bug ruleをCIへ組み込みたいJava projectに向く

styleだけでなくbest practice、error-prone pattern、design rule等をteam向けrulesetにまとめ、Maven/Gradle/IDE integrationで継続実行したい場合に適します。

出典:[2]

導入前の確認

rule変更とtype resolution要件をupgrade時に確認する

7.28.0ではJava rule追加に加えてKotlin XPath/type情報が拡張されました。一部rule propertyはdeprecatedとなっており、type情報を使う解析ではauxClasspath設定が必要な場合があります。

出典:[4]

参考にした公式資料

  1. [1]pmd/pmd — GitHub repository(2026-10-06)
  2. [2]PMD — README(2026-10-06)
  3. [3]PMD — License(2026-10-06)
  4. [4]PMD 7.28.0 release(2026-10-06)
編集部からの補足

Javaのcoding styleだけでなくbug・design・performance等をrule setで分析し、custom ruleまで拡張したい場合に向きます。rule upgradeでは新規findingやdeprecated propertyをCIへ段階導入してください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/pmd/pmd.git
  2. 2

    リポジトリへ移動

    cd pmd
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

5,494 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • apex
  • code-analysis
  • code-quality
  • hacktoberfest
  • java
  • linter
  • plsql
  • static-analysis
  • static-code-analysis
  • swift
Stars
5,494
Forks
1,598
Watchers
5,494
Open Issues
600
Contributors
316
所有者種別
Organization
主要言語
Java
ライセンス
未判定
リポジトリ最終更新
2026/10/04

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?