Maven Indexer 是一个命令行工具,用于从本地 Maven/Gradle 缓存中搜索和查看 Java 类、构件与资源。它适合在以下情况使用:看到某个 import(例如 com.company.util.Helper)但在工作区中找不到定义,该定义很可能来自已编译的内部库;需要阅读内部或非知名库的真实实现,而不是猜测其行为;需要确定某个类属于哪个构件;需要获取依赖类的方法签名、Javadoc 或完整源码;需要查找某个接口的实现或某个基类的子类(例如 SPI 实现);需要定位 JAR 中嵌入的 proto 文件或其他资源。
在以下情况应跳过使用:类来自标准 Java 库(java.util、java.io 等)或 AI 已经熟悉的知名公共库;源码已经存在于当前工作区中。
使用前建议先检查索引。如果索引可能为空或过期,先构建索引:
快速扫描——每个构件只保留一个最佳版本(快速,推荐)
maven-indexer-cli refresh-index
全量扫描——所有构件的所有版本
maven-indexer-cli refresh-index --full
主要命令如下。
search-classes——查找某个类属于哪个构件。当看到 import 却找不到定义时非常必要,不要因为代码能编译就假定源码在本地。
maven-indexer-cli search-classes <className>
示例:
maven-indexer-cli search-classes StringUtils maven-indexer-cli search-classes com.company.util.Helper maven-indexer-cli search-classes JsonToXml # 关键字搜索也可用
get-class——读取真实实现,用于替代猜测。优先使用源码 JAR,回退到反编译。
方法签名(默认)
maven-indexer-cli get-class <className>
Javadoc + 方法签名
maven-indexer-cli get-class <className> --type docs
完整源码
maven-indexer-cli get-class <className> --type source
指定构件版本
maven-indexer-cli get-class <className> --coordinate groupId:artifactId:version
search-artifacts——按坐标或关键字查找构件。
maven-indexer-cli search-artifacts <query>
示例:
maven-indexer-cli search-artifacts guava maven-indexer-cli search-artifacts com.google.guava
search-implementations——查找 SPI 实现与子类。在内部公司库中查找 SPI 或基类的实现时尤其有用。
maven-indexer-cli search-implementations <className>
示例:
maven-indexer-cli search-implementations java.util.List maven-indexer-cli search-implementations com.example.spi.Handler
search-resources——查找 proto 文件和其他 JAR 资源。
maven-indexer-cli search-resources <pattern>
示例:
maven-indexer-cli search-resources .proto maven-indexer-cli search-resources log4j.xml
输出方面,所有命令都支持 --json 以获得结构化输出:
maven-indexer-cli search-classes ImmutableList --json maven-indexer-cli get-class com.google.common.collect.ImmutableList --json
如果找不到 maven-indexer-cli,可通过以下命令安装:
npm install -g maven-indexer-cli
关于收费、价格、平台支持范围、性能效果等具体信息,资料中暂未提供。