夜雨聆风学习资料网

ARTICLE · 1266336

Java AI必装10选5:Claude Code

Java AI必装10选5:Claude Code

Java 后端开发者给 Claude Code 配环境,本文从 skill、MCP 服务、hook 与 CLAUDE.md 规则中筛出 10 项,裁定必装的只有 5 项,其中 2 项只是项目里的两份本地配置,并不依赖任何插件。2026-10-23 14:38:17 我在一个 JDK 17 的 Maven 工程里实测,提交前单测 hook 用时 2.7 秒,在 Claude Code 2.1.309 中拦下了一次测试未通过的 git commit。

结论先放在这里,只看这张表也可以直接做决定。

名称
解决什么
适合谁
裁决
兼容的 Agent
jdtls-lsp 官方插件
让 Agent 拿到编译错误与定义导航
所有 Java 项目
必装
Claude Code
JetBrains IDE 内置 MCP
复用 IDEA 的索引、检查与数据源
用 IDEA 2025.2+ 的人
必装
Claude Code / Codex / Junie
DBHub
只读查询 MySQL 表结构与数据
所有连库开发
必装
Claude Code / Codex / opencode
提交前 Maven 单测 hook
测试不过不许提交
所有 Maven/Gradle 项目
必装
Claude Code
Java 版 CLAUDE.md 规则
锁定构建命令与编码约定
所有团队
必装
Claude Code / opencode / Codex
maven-mcp
核实依赖坐标、版本与 CVE
依赖多、升级频繁的项目
按需
Claude Code / Codex / opencode
MCP Toolbox(MySQL)
执行计划、锁与碎片分析
做 SQL 调优的人
按需
Claude Code / Codex
Arthas MCP
线上 JVM 线程、方法耗时排查
负责排障的人
按需
Claude Code / Codex
SkyWalking MCP
读取链路追踪与服务指标
已部署 SkyWalking 的团队
按需
Claude Code
spring-boot-skills
Spring Boot 编码约定模板
新项目或缺规范的团队
按需
Claude Code / Codex / opencode

筛选标准

入选需要同时满足三条。第一,仓库在 2026-10-23 取数时 30 天内仍有提交,或者是 Anthropic、JetBrains、Apache、阿里巴巴等组织维护的官方实现。第二,能在本机启动并完成一次真实调用,做不到的必须有官方文档给出的完整配置。第三,解决的是 Java 后端特有的问题,与插件清单和 MCP 星标榜重叠的通用工具一律不再收录。

「兼容的 Agent」一列只写有来源的:要么是本次实测连通,要么是项目官方文档点名支持。MCP 是协议层标准,DeepSeek Harness(DSH)以插件形式接入 MCP,WorkBuddy 也内置了 MCP 连接器,理论上都能接入表中的服务,但本次没有逐项实测;Trae 的接入方式本次也未核实,表中一律不写。本机环境为 JDK 17.0.20、Maven 与 Node 22.13。

三档裁决的含义如下。必装指任何 Spring Boot 项目接入后都能立即减少返工,且默认配置下没有明显风险;按需指只在特定场景下收益明显,或者需要额外的基础设施与权限控制;不装指已有更好的替代或项目已停止维护,统一放在落选说明中。

十项工具按作用对象可以归为四条通道,外加一层项目本地配置。下图每张卡片是一条通道,绿色表示其中有必装项,琥珀色表示整条通道按需再接。

必装:五项

1. jdtls-lsp 官方插件

Anthropic 官方插件市场(anthropics/claude-plugins-official,2026-10-23 星标 43,960)中的 Java 语言服务插件,背后是 Eclipse JDT.LS。装上之后,Claude Code 改完一个类就能拿到编译错误、类型信息与定义导航,不必每次靠跑一遍 mvn compile 才发现符号写错。

实测中有一处需要特别注意。插件 README 写的前置条件是「Java 17 or later」,而 JDT.LS 仓库 README 写明运行时至少需要 Java 21;我用本机 JDK 17 启动当前快照,启动脚本直接报错 jdtls requires at least Java 21。项目本身仍可以编译到 Java 8 至 25,只是语言服务进程必须跑在 21 以上。

上图是 JDT.LS 仓库 README 的原文,加粗的 Java 21 就是运行时下限,和插件 README 写的 Java 17 对不上。Homebrew 的 jdtls 公式会连带安装 openjdk,用 brew 安装的人通常不会遇到这个问题。

brew install jdtls          # 会连带装上 openjdk(21+)

/plugin install jdtls-lsp@claude-plugins-official

2. JetBrains IDE 内置 MCP

IntelliJ 系 IDE 从 2025.2 起内置 MCP 服务,原先的 mcp-jetbrains 代理仓库已标记弃用。开启路径是 Settings → Tools → MCP Server,官方文档列出可自动写入配置的客户端包括 Claude Code、Codex、Junie 与 GitHub Copilot CLI。

它对 Java 开发者的价值在于复用 IDE 已经建好的索引:工具清单里有 get_file_problems、build_project、rename_refactoring、execute_run_configuration,还有 execute_sql_query 与一组断点调试工具,直接沿用 IDEA 里已配置的数据源与运行配置。适合日常就在 IDEA 里写代码的人;只用终端或 VS Code 的人可以跳过,靠第 1 项补足编译检查能力。文档提供的「brave mode」会让外部客户端免确认执行终端命令,建议保持关闭。

3. DBHub

仓库右侧的简介列出了它支持的六种数据库,根目录还带着 .claude-plugin 目录,可以按 Claude Code 插件安装。bytebase/dbhub,2026-10-23 星标 3,710,MIT 许可,也是 Claude Code 官方文档连接数据库的示例。它支持 MySQL、MariaDB、PostgreSQL 等六种数据库,默认只暴露 execute_sql 与 search_objects 两个工具,README 自测的默认工具描述约 1.4k token。

本次用 1.5.0 版实测:旧版的 --readonly 命令行参数已被移除,启动时会直接报错退出,只读模式改为在 dbhub.toml 的 [[tools]] 段里声明 readonly = true。配置生效后 select count(*) 正常返回,delete from orders 被拒绝并返回 READONLY_VIOLATION。Claude Code 与 opencode 1.3.3 均实测连通,Codex 的接法见其官方文档。本机没有 MySQL 实例,读写拦截在 SQLite 文件上验证,MySQL 走同一套只读事务逻辑。

只读声明是应用层的防线,数据库侧还应再加一层:给 Agent 单独建一个只有 SELECT 权限的 MySQL 账号,DSN 写成 mysql://agent_ro:密码@127.0.0.1:3306/库名,并通过环境变量注入,不要把开发者本人的读写账号交给它。

[[tools]]

name="execute_sql"

source="default"

readonly=true

max_rows=100

4. 提交前 Maven 单测 hook

这是一份写在项目 .claude/settings.json 里的 PreToolUse hook,匹配 Bash 工具,只在命令包含 git commit 时运行单测,失败即以退出码 2 拦截。实测中我故意把断言改错,让 Claude Code 执行提交,hook 返回「mvn test 未通过,已拦截提交」,仓库里没有产生任何提交;测试通过时整个检查耗时 2.7 秒。

2026-10-27 我在临时目录里用同一份 hook 重做了一次:一个 JDK 17 的小 Maven 工程,满 100 减 20 的断言被我改成了 90,然后让 Claude Code 提交。

看第一段回复:Claude Code 说明提交前钩子跑了 mvn test,测试没过,提交被拦下,并贴出失败的断言;最后一行 git log 只有初始化那一条,确实没有产生新提交。

这里选用 PreToolUse,因为拦截发生在命令执行之前:Agent 即使在命令里加上 --no-verify,这道检查同样会触发,git 自带的 pre-commit 钩子则会被该参数直接跳过。

jq-r'.tool_input.command // ""'|grep-q'git commit'||exit 0

mvn-q-B-o test >&2 ||{ echo "mvn test 未通过,已拦截提交" >&2; exit 2; }

脚本依赖 jq,放在 .claude/hooks/,在 settings 的 hooks.PreToolUse 中以 "matcher": "Bash" 引用即可,timeout 建议设到 300 秒以容纳多模块工程。Gradle 项目把第二行换成 ./gradlew test --offline。通用的提交前检查写法在这篇 hook 文章中讨论过,本文只补 Java 侧的命令。

Codex 0.163 的源码里同样有 PreToolUse 事件与 hooks.json 配置,但我把同一份配置放进项目级 .codex/hooks.json 后,codex exec 并未触发拦截,因此表中暂不标注 Codex。

5. Java 版 CLAUDE.md 规则

规则文件不需要安装,却是五项中投入产出比最高的一项。Agent 在 Spring Boot 项目里最常见的偏差是字段注入、凭空捏造 Maven 坐标、把 DDL 直接打到数据库上,这些都可以用几行硬规则提前约束。

- 构建:改完 Java 文件跑 ./mvnw -q -o compile;提交前 ./mvnw -q test

- 注入:只用构造器注入,禁止 @Autowired 字段注入

- 数据库:MySQL 8;表结构变更只写 Flyway 迁移脚本,禁止直连改表

- 依赖:新增依赖前先用 maven-mcp 核实坐标与当前稳定版

- 事务:@Transactional 只放在 Service 层的 public 方法上

opencode 官方文档写明,项目中没有 AGENTS.md 时会回退读取 CLAUDE.md;Codex 读取的是 AGENTS.md,团队同时使用两端时保留一份内容、另一份做软链接即可。规则怎样写才不被 Agent 忽略,可以参考这篇 AGENTS.md 硬规则。

按需:五项

6. maven-mcp

kirich1409/maven-mcp,2026-10-23 星标 36,2026-09-29 创建,MIT 许可。星标不高,但在本次检索到的同类工具中,只有它同时满足三点:服务端只依赖 Python 标准库,以 Claude Code 插件形式发布,同时读取 pom.xml 与 Gradle 构建文件。

实测 1.1.0 版共 21 个工具。查询 spring-boot-starter-web 的当前版本返回 4.1.2,用时 0.6 秒,请求走的是本机 Maven 配置中的阿里云镜像;对 Agent 常写错的坐标 org.springframework.boot:spring-boot-starter-mybatis 调用 verify_coordinates,返回 likelyHallucination: true 并给出候选坐标。Claude Code 与 opencode 均实测连通,Codex 通过 uvx maven-mcp 接入。代价是 21 个工具的描述约 4.6 万字符,依赖不常变动的项目没有必要常驻。

/plugin marketplace add kirich1409/maven-mcp

/plugin install maven-mcp@maven-mcp

7. MCP Toolbox for Databases(MySQL 预置)

googleapis/mcp-toolbox,2026-10-23 星标 16,709,当前版本 v1.15.0。--prebuilt=mysql 提供 9 个工具,除执行 SQL 外还有 get_query_plan、list_all_locks、list_tables_missing_unique_indexes 与 list_table_fragmentation,偏向 DBA 视角的分析。README 点名支持 Claude Code 与 Codex。

它与 DBHub 的分工很清楚:DBHub 负责日常看表写查询,Toolbox 负责慢 SQL 与锁排查。实测中它在启动阶段就要求数据库可连,连接失败会直接退出,不能像 DBHub 那样先挂上再连;启动日志也明确提示预置配置只适合开发期使用,不要接到面向外部用户的 Agent 上。

8. Arthas MCP

alibaba/arthas,2026-10-23 星标 37,587,4.3.5 版的发行包已在 arthas.properties 中默认开启 /mcp 端点。我把它 attach 到官方示例进程 math-game 上,HTTP 端点暴露了 32 个工具,官方文档写的是 29 个,工具描述合计约 4.6 万字符;Claude Code 与 Codex 都通过 HTTP 传输实测调用了 jvm 工具并读回线程数。

这一项必须谨慎对待。工具清单里包含 redefine、retransform、ognl 与 stop,意味着 Agent 可以热替换字节码、执行任意 OGNL 表达式。用于测试环境排障很有效;接到生产环境之前,至少要在 arthas.properties 中设置 arthas.password,让客户端携带 Bearer Token 访问。

claude mcp add --transport http arthas http://127.0.0.1:8563/mcp

9. SkyWalking MCP

apache/skywalking-mcp,2026-10-23 星标 38,当前版本 v0.2.0,Apache 官方项目。对已经用 SkyWalking 做链路追踪的团队,接入后 Agent 可以直接读取慢调用链路与服务指标,再回到代码定位原因。README 点名支持 Claude Code。

Releases 页提供 macOS 与 Linux 的 swmcp 预编译包,命令行带有 --read-only 参数,建议默认开启。项目仍处于 0.x 阶段,适合已经部署 SkyWalking OAP、且排障频率较高的团队;没有部署 APM 的项目装它没有意义。本机没有 OAP 实例,本项未做实测。

10. spring-boot-skills

rrezartprebreza/spring-boot-skills,2026-10-23 星标 322,MIT 许可,按 Spring Boot 3 与 4 各提供 33 个主题,并附带 CLAUDE.md 与 AGENTS.md 模板,README 标注兼容 Claude Code 与 Codex;opencode 文档写明会扫描 .claude/skills/ 目录,同样可以读取。

裁定为按需有两个原因。其一,它的数据访问主题以 JPA 与 Flyway 为主,目录中没有 MyBatis 相关内容,国内以 MyBatis 为主的项目只能参考结构。其二,整包安装会把 33 个 skill 描述全部挂进上下文,建议只复制两三个与项目匹配的主题,例如 rest-api-conventions 与 testing-pyramid,再按团队约定改写。

落选说明

arvindand/maven-tools-mcp 星标 35,功能与第 6 项相近,但官方快速开始依赖 Docker,源码构建要求 Java 25,在 JDK 17 的常规后端环境里门槛偏高。elastic/mcp-server-elasticsearch 星标 725,README 已声明弃用,只接收关键安全修复,Elastic 9.2 以上应改用 Agent Builder 自带的 MCP 端点。JetBrains/mcp-jetbrains 星标 963,同样已弃用,功能并入第 2 项。专门检索 Javadoc 的 MCP 服务星标都在个位数,第 1 项的 LSP 已经能拿到依赖类的签名与文档。

结论

这次筛选得出的判断是,Java 后端给 Agent 配环境,关键不在多装几个通用插件,在于连上四条通道:编译器、数据库、依赖仓库和运行中的 JVM。jdtls 与 IDE 内置 MCP 负责前者,DBHub 与 maven-mcp 负责中间两条,Arthas 与 SkyWalking 负责最后一条。通道接上之后,Agent 不必再凭训练数据猜测表结构与依赖版本。

通道越多,权限边界越要提前划清。DBHub 的只读要在配置文件里显式声明,Arthas 的热替换能力默认就向客户端开放,这两项的安全取决于配置,与工具本身的成熟度关系不大。

必装的五项里有两项只是本地配置,这一点最值得记住。一个 2.7 秒的提交前单测 hook 与五行 CLAUDE.md 规则,不依赖任何第三方仓库的维护状态,也最不容易随版本更新失效;先把这两份配置写进项目,再按需要逐个接入其余通道,是 Java 团队使用 Claude Code 最稳妥的顺序。

文中的结论总表可以直接收藏,选型时对照使用。如果这篇对你有帮助,欢迎点个在看。

你的 Java 项目里,Claude Code 目前接了哪些 MCP 或 hook?欢迎在评论区分享你的做法。

相关学习资料