Java代码分析工具

JarWise是一款Java代码分析工具,帮助开发者理解Java项目中的方法调用层次结构,支持本地和服务器模式。

  • by advance-group
  • Java
  • 混合部署
  • 11 星标
  • 更新于
在 GitHub 查看 advance-group/jar-wise

使用说明

JarWise 的

JarWise是一个Java代码分析工具,可帮助开发人员理解Java项目中的方法调用层次结构。它提供了一个模型上下文协议(MCP)服务器,该服务器公开了用于分析Java代码结构和关系的工具。

JarWise是什么?

JarWise使用JavaParser分析Java源代码和JAR文件,构建类、方法及其关系的索引。它可以跟踪方法调用层次结构,帮助开发人员了解代码库的不同部分是如何交互的。

该工具特别适用于:

  • 理解复杂的代码库
  • 跟踪方法调用流
  • 分析依赖关系
  • 探索继承层次结构
  • 发现REST API终结点

需求

  • Java 21或更高版本
  • 8.0级或更高

操作模式

JarWise支持两种操作模式:

本地模式(默认)

  • 用例:单个Java项目
  • 配置: jar-wise.mode=LOCAL
  • 路径:设置 jar-wise.project-path 到您的Java项目目录

服务器模式

  • 用例:多个Java项目
  • 配置: jar-wise.mode=SERVER
  • 路径:设置 jar-wise.project-path 到包含多个Java项目的根目录

您可以通过环境变量进行设置:

  • JAR_WISE_MODE:设置为 LOCAL (默认)或 SERVER
  • JAR_WISE_PROJECT_PATH:项目或根目录的路径

在JarWise上构建和运行JarWise

建设项目

./gradlew build

Jar文件对于类型解析很重要。在使用JarWise之前,请务必构建Java项目。Thinjar及其所有依赖项和bootjar都受支持。

运行MCP服务器

JAR_WISE_PROJECT_PATH=${pwd} ./gradlew bootRun

或者使用JAR文件:

JAR_WISE_PROJECT_PATH=${pwd} java -jar app/build/libs/app.jar 

运行后,JarWise服务将扫描所有java源文件和Jar文件。

MCP配置

  1. 启动JarWise MCP服务器(见上面的说明)
  2. 配置您的MCP客户端以连接到JarWise:
{
  "mcpServers": {
    "jar-wise": {
      "url": "http://localhost:8080/mcp",
      "transportType": "streamableHttp"
    }
  }
}

使用示例

您可以通过MCP兼容客户端发出的请求示例:

  • 查找呼叫层次结构: find_call_hierarchy 带签名参数
  • 获取REST API摘要: find_rest_api_summary 列出所有API
  • 搜索代码: search_code 按名称查找类、方法或API
  • 分析代码关系和方法流

这种集成允许您在支持MCP的首选开发环境中利用JarWise的代码分析功能。

许可证

此项目根据GNU较宽松通用公共许可证v3.0(LGPL-3.0)获得许可-请参阅 许可证 文件以获取详细信息。

LGPL对你意味着什么?

  • 使用图书馆:您可以在应用程序(包括商业应用程序)中自由使用此库,不受任何限制
  • 修改库:如果修改并分发此库,则必须使修改后的源代码在LGPL-3.0下可用
  • 链接:您可以将此库与专有代码链接,而无需将整个应用程序开源