Repository navigation
🚀 Java Code Indexer v2.1.1
Java AST-level code indexer with SQLite storage, exposed as an MCP server for AI coding assistants.
📊 开发状态
| 指标 | 状态 |
|---|---|
| 当前版本 | v2.1.1 |
| 开发阶段 | Alpha |
| 稳定性 | 核心功能稳定,API 可能调整 |
| Java 版本要求 | 21+ |
| 最后更新 | ${GITHUB_SHA::8} |
✨ 核心功能
🔍 代码索引
- 符号索引:类、方法、字段的完整定义和位置
- 引用追踪:符号在整个代码库中的使用位置
- 调用图:方法调用关系(调用者/被调用者)
- 增量索引:基于 SHA-1 哈希的智能跳过未变更文件
🛠 MCP 工具
| 工具 | 功能 |
|---|---|
find_symbol |
按名称查找符号,支持通配符 |
find_references |
查找符号的所有引用位置 |
get_call_graph |
方法调用图分析 |
search_code |
搜索符号名和代码内容 |
get_file_info |
文件详情:符号、代码块、调用关系 |
search_config |
搜索配置文件 (YAML/Properties/.env) |
find_dependencies |
搜索项目依赖 (Maven/Gradle) |
📦 分发方式
- Fat JAR:通用 Java 21+ 运行时
- Native Image:GraalVM 原生镜像,启动即时
- Docker:容器化部署,支持多平台
- 多平台支持:Linux (amd64/arm64)、macOS (amd64/arm64)、Windows (amd64)
📝 更新日志
Full Changelog: v2.1.0...v2.1.1
- release: bump version to 2.1.1
- docs: 更新仓库 URL 为 Lincoln-cn/JCodeIndexer 并添加 badges
- fix: MCP 协议缺口、list_modules 注册、复杂度报告与返回格式统一
- fix: 两阶段写入索引,解决跨文件引用解析顺序依赖问题
📥 安装说明
Fat JAR
# 1. 索引项目(首次使用)
java -jar java-code-indexer-2.1.1.jar --project-root /path/to/project --index
# 2. 启动 MCP 服务(供 Claude Code / Cursor 等 AI 助手使用)
java -jar java-code-indexer-2.1.1.jar --project-root /path/to/projectNative Image
# Linux/macOS
# 1. 索引项目
./jindexer --project-root /path/to/project --index
# 2. 启动 MCP 服务
./jindexer --project-root /path/to/project
# Windows
# 1. 索引项目
jindexer.exe --project-root /path/to/project --index
# 2. 启动 MCP 服务
jindexer.exe --project-root /path/to/projectDocker
# 1. 索引项目
docker pull sodlinken/jcodeindexer:2.1.1
docker run --rm -v /path/to/project:/project sodlinken/jcodeindexer:2.1.1 --project-root /project --index
# 2. 启动 MCP 服务
docker run --rm -i -v /path/to/project:/project sodlinken/jcodeindexer:2.1.1 --project-root /projectDocker 离线镜像
# 加载离线镜像
docker load < docker-image-2.1.1.tar.gz
# 索引项目
docker run --rm -v /path/to/project:/project sodlinken/jcodeindexer:2.1.1 --project-root /project --index🔧 环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
INDEXER_THREADS |
索引线程数 | 4 |
INDEXER_LOG_LEVEL |
日志级别 (DEBUG/INFO/WARN/ERROR) | INFO |
⚙️ 配置文件
在项目根目录创建 .jindexer/config.yaml(可选):
# === 项目路径 ===
project_root: /path/to/project
data_dir: .jindexer
# === 索引设置 ===
indexing_threads: 4
max_file_size_kb: 512
extract_javadoc: false
follow_symlinks: false
# === 存储设置 ===
db_name: index.db
# === 日志设置 ===
log_level: INFO
verbose: false
# === 文件监听 ===
watch_enabled: true
watch_interval_seconds: 5
watch_exclude:
- "**/target/**"
- "**/build/**"
- "**/.git/**"
- "**/node_modules/**"