Back to MCP directory
publicPublicdnsLocal runtime

pmd

PMD是一个可扩展的多语言静态代码分析工具,主要用于检测Java和Apex等语言的常见编程缺陷,支持16种语言和400多个内置规则,并包含重复代码检测功能。

article

README

🚀 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(复制粘贴检测器)。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 checkbin\pmd.bat check

也可以查看 入门指南

演示:

此演示展示了 PMD 如何分析 openjdk

演示

有适用于 Maven 和 Gradle 的插件,以及适用于各种 IDE 的插件。 请参阅 工具/集成

ℹ️ 如何获得支持?

🤝 贡献代码

欢迎提交拉取请求。对于重大更改,请先打开一个问题,讨论你想要更改的内容。

我们的最新 PMD 源代码可以在 GitHub 上找到。快来 Fork 我们吧!

有关详细信息,请参阅 如何为 PMD 做贡献

规则设计器在 pmd/pmd-designer 中开发。 请参阅 其 README 以获取开发人员文档。

💵 财务贡献者

成为财务贡献者,帮助我们维持社区的发展。贡献

✨ 贡献者

本项目遵循 all-contributors 规范。欢迎任何形式的贡献!

完整列表请参阅 致谢

📄 许可证

BSD 风格

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client