mcpField
P
pmd

pmd

本地服务
github.com/roeiba开发工具247 周前更新

关于 pmd

pmd 是面向开发者的多语言静态代码分析器,主要用于 Java 和 Apex。它提供内置规则、可扩展的自定义规则,并包含用于查找重复代码的 CPD。

主要功能

  1. 01检查常见代码缺陷
  2. 02支持多种编程语言
  3. 03提供 400 多条内置规则
  4. 04通过 Java 或 XPath 编写规则
  5. 05使用 CPD 检测重复代码

适用场景

  1. 01检查 Java 或 Apex 项目中的代码问题
  2. 02在代码库中查找重复片段
  3. 03为项目编写自定义分析规则

MCP 相关

输入仅将其描述为静态代码分析器,未说明 MCP 功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"roeiba-pmd": {
"command": "npx",
"args": [
"-y",
"@springsoftware/pmd-mcp"
]
}
}
}
启动命令npx -y @springsoftware/pmd-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@springsoftware/pmd-mcp0.1.2

工具

4

收录的工具列表 · 更新于 3 周前

参数类型必填说明
pathstring是要分析的源文件或目录路径
excludesarray否要从分析中排除的文件模式
rulesetsarray否要应用的规则集(例如,["rulesets/java/quickstart.xml"])。默认值为 quickstart。
language_versionstring否语言版本(例如,"java-21"、"ecmascript-ES2022")
minimum_prioritynumber否要报告的最低优先级(1=最高,5=最低)。默认值:全部

详细介绍

PMD - 源代码分析器

PMD Logo

加入聊天 构建快照 Maven Central 可复现构建 覆盖率状态 Codacy 徽章 贡献者公约 文档(最新) Gurubase Docker 镜像版本

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。 PMD 支持 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。

🚀️ 安装和使用

从 releases 下载最新的二进制 zip 文件, 并将其解压到合适的位置。

执行 bin/pmd check 或 bin\pmd.bat check。

另请参阅快速入门

演示:

下面演示了 PMD 如何分析 openjdk:

演示

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

ℹ️ 如何获取支持?

🤝️ 参与贡献

欢迎提交拉取请求。对于重大更改,请先提交问题,讨论你希望进行的更改。

我们最新的 PMD 源代码可在 GitHub 上找到。欢迎 Fork!

详情请参阅如何为 PMD 贡献代码。

规则设计器在 pmd/pmd-designer 中开发。 开发者文档请参阅其 README。

💵️ 资金贡献者

成为资金贡献者,帮助我们维持社区发展。参与贡献

✨️ 贡献者

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

完整列表请参阅鸣谢。

📝️ 许可证

BSD 风格

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。