# dependency-checker **Repository Path**: huathy/dependency-checker ## Basic Information - **Project Name**: dependency-checker - **Description**: 依赖检查工具,扫描文件夹下的所有项目的依赖,是否最新版本,是否存在漏洞,一键修复 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DepGuard - 依赖漏洞扫描器 一个本地桌面工具,用于批量扫描 Maven / Gradle 项目的依赖漏洞,提供可视化的扫描结果展示和一键修复能力。 ## 特性 - **批量扫描**:递归扫描指定文件夹下的 Maven(`pom.xml`)和 Gradle(`build.gradle`)项目 - **依赖解析**:自动提取依赖坐标与版本号,归一化合并相同依赖 - **版本查询**:通过 Maven Central Search API 查询每个依赖的最新版本 - **漏洞检测**:通过 OSV API 查询已知漏洞(CVE/GHSA),并标记严重级别 - **可视化展示**:左项目树 + 右依赖表布局,支持筛选和排序 - **一键修复**:对有漏洞的依赖提供一键升级到安全版本的能力 - **导出报告**:支持导出 Markdown / CSV / JSON 格式 - **本地缓存**:SQLite 缓存查询结果,避免重复请求,支持离线查看 - **纯本地运行**:不上传用户代码到任何第三方服务 ## 技术栈 | 层级 | 技术 | |------|------| | 桌面框架 | Tauri 2.0 | | 前端 | Vue 3 + TypeScript + Arco Design Vue | | 状态管理 | Pinia | | 后端 | Rust | | 依赖解析 | quick-xml(XML)、正则 + 状态机(Gradle DSL) | | 数据源 | Maven Central Search API、OSV API | | 本地缓存 | SQLite(rusqlite) | | 构建工具 | Vite + Tauri CLI | ## 前置要求 - [Node.js](https://nodejs.org/) >= 18 - [pnpm](https://pnpm.io/) >= 8 - [Rust](https://www.rust-lang.org/) >= 1.75 - [Tauri CLI 系统依赖](https://v2.tauri.app/start/prerequisites/)(根据操作系统不同) ## 快速开始 ```bash # 1. 安装前端依赖 pnpm install # 2. 开发模式启动(同时启动前端 Vite 开发服务器和 Tauri 桌面窗口) pnpm tauri dev # 3. 构建生产版本 pnpm tauri build ``` > 注意:`pnpm tauri dev` 会自动执行 `pnpm dev`(Vite 开发服务器),然后启动 Tauri 桌面窗口。 ## 可用脚本 | 命令 | 说明 | |------|------| | `pnpm dev` | 启动 Vite 前端开发服务器(端口 1420) | | `pnpm build` | 构建前端产物 | | `pnpm preview` | 预览构建后的前端 | | `pnpm tauri dev` | 启动 Tauri 开发模式(桌面窗口) | | `pnpm tauri build` | 构建 Tauri 桌面应用安装包 | | `pnpm test` | 运行单元测试 | | `pnpm test:watch` | 监听模式运行测试 | | `pnpm typecheck` | TypeScript 类型检查 | ## 项目结构 ``` depguard/ ├── src/ # 前端源码 (Vue 3) │ ├── api/ # 与 Rust 后端通信的 API 层 │ ├── assets/ # 静态资源 │ ├── components/ # 通用组件 │ ├── layouts/ # 布局组件 │ ├── stores/ # Pinia 状态管理 │ ├── types/ # TypeScript 类型定义 │ ├── utils/ # 工具函数 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── src-tauri/ # 后端源码 (Rust) │ ├── src/ │ │ ├── cache/ # SQLite 缓存层 │ │ ├── commands/ # Tauri 命令 │ │ ├── datasource/ # 远程数据源接口 │ │ ├── fixer/ # 依赖修复逻辑 │ │ ├── gateway/ # 数据源网关(限流、重试) │ │ ├── models/ # 数据模型 │ │ ├── normalizer/ # 依赖坐标归一化 │ │ ├── parser/ # pom.xml / build.gradle 解析器 │ │ ├── scanner/ # 文件系统扫描器 │ │ ├── lib.rs # 库入口 │ │ └── main.rs # 主入口 │ ├── Cargo.toml # Rust 依赖配置 │ └── tauri.conf.json # Tauri 配置 ├── docs/ # 文档 ├── package.json ├── vite.config.ts └── tsconfig.json ```