# easy-dependency **Repository Path**: kelr/easy-dependency ## Basic Information - **Project Name**: easy-dependency - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-02 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Easy-Dependency > 🌟 **AI 辅助开发项目** - 本项目代码由 AI 辅助生成 Easy-Dependency 是一个 IntelliJ IDEA 插件,用于可视化管理 Maven/Gradle 项目的依赖版本。它提供直观的工具窗口,让开发者轻松查看、搜索、修改和对比依赖版本,特别适合多分支开发场景。 ## 功能特性 - **多项目类型支持**:Maven(pom.xml)和 Gradle(build.gradle.kts/build.gradle) - **标签管理**:创建多个独立标签,分别记录不同的依赖版本配置 - **依赖搜索过滤**:支持关键字搜索和模块过滤 - **版本编辑**:直接在界面中编辑版本,自动同步到构建文件 - **版本对比**:实时展示当前版本与原始版本、VCS 版本的差异 - **VCS 集成**:与 Git 集成,支持对比和还原到版本控制版本 - **多模块支持**:完整支持多模块项目的依赖管理 - **数据持久化**:自动保存到 `.idea/easy-dependency.json` ## 解决的问题 在多分支开发中,不同分支往往依赖同一组件的不同版本。手动管理意味着每次切换分支都要执行 `git stash` → `git pull` → 修改版本 → `git stash pop`,低效且容易出错。 ### 典型场景 - **master**: `order-api` → v1.0 - **dev-1**: `order-api` → v2.0 - **dev-2**: `order-api` → v2.1 当 master 的 `order-api` 更新到 v1.1 后,在多个分支间切换开发时,每次都需要手动调整版本号。 **Easy-Dependency 为每个分支记住依赖版本,切换分支时自动还原,无需手动修改 pom.xml。** ![Easy-Dependency](doc/image/easy-dependency.png) ## 安装 1. 打开 IntelliJ IDEA,进入 `File > Settings > Plugins` 2. 点击 `Install Plugin from Disk...`,选择插件的 `.zip` 文件 ## 使用方式 安装后,点击右侧工具栏的 **EasyDependency** 图标打开工具窗口。 ## 界面布局 工具窗口分为四个主要区域: ``` ┌─────────────────────────────────────────────────────┐ │ 搜索面板 (顶部) │ ├──────────┬──────────────────────────────────────────┤ │ 标签面板 │ 依赖表格 (中间) │ │ (左侧) │ │ │ ├──────────────────────────────────────────┤ │ │ 依赖详情面板 (底部) │ └──────────┴──────────────────────────────────────────┘ ``` ### 顶部搜索面板 包含搜索框、模块选择器和操作按钮: - **搜索框**:按关键字实时过滤依赖(支持 `groupId`、`artifactId`、`Module`) - **模块选择器**:按模块过滤依赖列表,支持 `All Modules` - **刷新按钮**:重新读取 POM/Gradle 文件,更新依赖列表 - **下拉菜单**:包含刷新自VCS、重置到VCS、应用、重置等操作 ### 左侧标签面板 用于管理多个标签,每个标签独立记录依赖修改: - **默认标签 (Default)**:项目打开时自动创建,不可删除 - **添加标签**:基于当前依赖创建新标签 - **标签操作**:单击切换、双击重命名、右键删除 ### 中间依赖表格 展示当前标签的所有依赖: | 列名 | 说明 | | -------------- | -------------------------------------------- | | **Module** | 依赖所属模块 | | **Type** | `[D]` 普通依赖 / `[DM]` dependencyManagement | | **Dependency** | `groupId:artifactId` | | **Version** | 当前版本号 | **版本状态标识**: - **红色背景**:已被用户修改 - **默认背景**:与原始版本一致 ### 底部详情面板 选中依赖后显示详细信息: | 属性 | 说明 | | -------------------- | ------------------ | | **Module** | 所属模块(只读) | | **Type** | 依赖类型(只读) | | **GroupId** | GroupId(只读) | | **ArtifactId** | ArtifactId(只读) | | **Version** | 当前版本(可编辑) | | **Original Version** | 原始版本(只读) | **编辑版本**:双击 Version 值列,输入新版本后按 Enter 确认,修改自动同步到 POM 文件。 ### 底部操作按钮 - **还原原始版本**:将选中依赖恢复为原始版本 - **还原版本控制版本**:将选中依赖恢复为 Git 最新提交版本 ### 顶部下拉菜单操作说明 | 操作 | 说明 | | ------------- | -------------------------------------------------------------------------------------- | | **刷新自VCS** | 用 Git 最新提交的数据更新 `originalVersion` 作为对比基准 | | **重置到VCS** | 将依赖列表与 Git 同步:VCS 有的依赖添加到列表,VCS 没有的依赖删除,版本重置为 VCS 版本 | | **应用** | 将当前表格中的所有版本修改写入 POM/Gradle 文件 | | **重置** | 将所有依赖恢复到 `originalVersion` 的值,并写回 POM/Gradle 文件 | ## 数据持久化 标签数据和修改记录保存在(使用ZSTD压缩): ``` .idea/easy-dependency.json.zst ``` **存储机制**: - **节流保存**:修改后延迟 5 秒自动保存 - **自动恢复**:重新打开项目时自动加载 - **项目隔离**:每个项目独立存储 ## 版本控制集成 插件自动检测项目根目录下的 `.git` 目录,提供以下功能: - **VCS 版本对比**:对比当前版本与 Git 最新提交版本 - **重置到 VCS**:将 POM 文件还原到 Git 最新提交状态 - **刷新自 VCS**:以 VCS 版本为基准标记差异 ## 支持的构建工具 ### Maven - 解析 `pom.xml` 文件 - 支持多模块项目和 `dependencyManagement` - 支持父子模块版本继承 ### Gradle - 支持 `build.gradle.kts`(Kotlin DSL)和 `build.gradle`(Groovy DSL) - 支持多模块项目 ## 技术栈 - **语言**:Kotlin + Java - **框架**:IntelliJ Platform SDK - **构建工具**:Gradle (Kotlin DSL) - **IDE 版本**:IntelliJ IDEA 2024.3+ ## 开发与构建 ### 本地启动 使用 Gradle 运行插件开发环境: ```bash # Windows ./gradlew.bat runIde # macOS/Linux ./gradlew runIde ``` 启动后会自动打开一个新的 IntelliJ IDEA 实例,插件已安装在其中,可直接测试。 ### 打包插件 构建插件安装包: ```bash # Windows ./gradlew.bat buildPlugin --no-build-cache # macOS/Linux ./gradlew buildPlugin --no-build-cache ``` 打包完成后,插件文件位于: ``` build/distributions/easy-dependency-.zip ``` ## FAQ **Q: 修改版本后,POM 文件会自动更新吗?** A: 是的。编辑版本后会自动同步写入 POM/Gradle 文件,也可通过"应用"按钮批量应用。 **Q: 如何撤销对某个依赖版本的修改?** A: 选中依赖后点击"还原原始版本"按钮,或使用"重置"批量还原所有修改。 **Q: 标签之间会互相影响吗?** A: 不会。每个标签独立记录修改,但所有标签共用同一套 POM/Gradle 文件。 **Q: 如果项目不是 Git 管理的,VCS 功能还能用吗?** A: 不能。VCS 功能仅在项目根目录存在 `.git` 目录时可用。 **Q: 如何删除多余的标签?** A: 在左侧标签面板右键点击标签(Default 标签不可删除),选择"删除"即可。