{"id":31844818,"url":"https://github.com/bitlap/sbt-dependency-analyzer","last_synced_at":"2025-10-12T07:50:52.868Z","repository":{"id":154903742,"uuid":"632424141","full_name":"bitlap/sbt-dependency-analyzer","owner":"bitlap","description":"Sbt Dependency Analyzer plugin for IntelliJ based IDEs/Android Studio.","archived":false,"fork":false,"pushed_at":"2025-10-06T01:52:51.000Z","size":11860,"stargazers_count":92,"open_issues_count":7,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-10-06T03:26:14.882Z","etag":null,"topics":["dependency-analysis","dependency-tree","java","jetbrains-plugin","sbt","scala"],"latest_commit_sha":null,"homepage":"https://plugins.jetbrains.com/plugin/22427-sbt-dependency-analyzer","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitlap.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":"https://blog.dreamylost.cn/donate/"}},"created_at":"2023-04-25T11:32:56.000Z","updated_at":"2025-10-06T01:52:53.000Z","dependencies_parsed_at":"2023-12-22T03:52:34.174Z","dependency_job_id":"e7f6229c-20a9-4028-887a-374803d80371","html_url":"https://github.com/bitlap/sbt-dependency-analyzer","commit_stats":null,"previous_names":["bitlap/sbt-dependency-analyzer"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/bitlap/sbt-dependency-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fsbt-dependency-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fsbt-dependency-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fsbt-dependency-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fsbt-dependency-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitlap","download_url":"https://codeload.github.com/bitlap/sbt-dependency-analyzer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fsbt-dependency-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010667,"owners_count":26084785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency-analysis","dependency-tree","java","jetbrains-plugin","sbt","scala"],"created_at":"2025-10-12T07:50:51.848Z","updated_at":"2025-10-12T07:50:52.863Z","avatar_url":"https://github.com/bitlap.png","language":"Scala","readme":"# IntelliJ IDEA 版 Sbt 依赖分析器\n\n\u003cimg src=\"./logo.svg\" width=\"250\" height=\"150\" alt=\"Sbt Dependency Analyzer Logo\" align=\"right\" /\u003e\n\n[![Build Status][badge:build]][gh:workflows-build]\n[![License][badge:license]][gh:license]\n[![GitHub releases][badge:release]][gh:releases]\n[![Version][badge:version]][plugin-versions]\n[![Downloads][badge:downloads]][plugin-homepage]\n\n\u003cp align=\"center\"\u003e\u003cb\u003e基于Intellij的IDE/Android Studio的Sbt 依赖分析器插件\u003c/b\u003e\u003c/p\u003e\n\n\n[English](README.md) | 中文\n\n**⭐ 觉得这个插件有用？请在 [GitHub](https://github.com/bitlap/sbt-dependency-analyzer) 上给它一个 Star 以示支持！**\n\n## 🚀 概述\n\nSbt 依赖分析器插件提供了强大的可视化工具，帮助您轻松理解、管理和排查 Sbt 项目的依赖关系。直接在 IDE 中清晰洞察您的库依赖及其关系。\n\n## ✨ 主要特性\n\n*   **依赖树可视化**：以层次结构树的形式查看项目的所有依赖。\n*   **冲突识别**：快速发现并解决库之间的版本冲突。\n*   **依赖搜索**：轻松在项目中查找特定依赖。\n*   **模块间依赖分析**：可视化项目中不同模块之间的依赖关系。\n*   **JAR 大小指示器**：查看依赖 JAR 的大小，以便更好地管理项目的资源占用。\n*   **跳转到声明**：点击 *用户定义的* 依赖项可直接跳转到其在 `build.sbt` 中的声明位置。\n*   **依赖排除（实验性功能）**：\n    *   选择一个 *传递* 依赖项以从某个 *用户定义* 的依赖中排除它。\n    *   选择一个 *用户定义* 的依赖项以移除该依赖本身。\n    *   *自插件版本 `0.5.0-242.21829.142` 起可用。*\n\n## 🛠️ 安装与设置\n\n1.  **安装插件**：前往 `设置/偏好设置` \u003e `插件` \u003e `市场`，搜索 \"Sbt Dependency Analyzer\" 并安装。\n2.  **自动设置**：首次分析时，如果需要，插件会自动生成一个 `project/sdap.sbt` 文件。此文件添加了所需的 `addDependencyTreePlugin` 语句。**创建后请勿修改或删除此文件**。\n3.  **插件依赖**：本插件利用了 `sbt-dependency-tree` 的功能，该功能已捆绑在最近的 sbt 版本中（但默认未启用，[sbt 问题](https://github.com/sbt/sbt/pull/5880)）。\n\n## 📖 使用方法\n\n\u003e **默认键盘快捷键**：`Ctrl` + `Shift` + `L` (Windows/Linux) / `Command` + `Shift` + `L` (macOS)\n\n只需在 IntelliJ IDEA 中打开您的 Sbt 项目并使用快捷键即可生成和查看依赖分析。\n\n![Dependency Analysis View](https://plugins.jetbrains.com/files/22427/screenshot_064531dc-a3fa-4a8e-9437-7e76defa1f48)\n\n*交互式依赖关系图清晰地展示了项目的结构。*\n\n## ⚙️ 配置 \u003ca id=\"settings\"\u003e\u003c/a\u003e\n\n通过 `设置/偏好设置` \u003e `工具` \u003e `Sbt Dependency Analyzer` 微调插件行为并可能加速分析：\n\n*   **文件缓存超时**：调整插件在重新运行 `dependencyDot` 命令之前，使用缓存的依赖图文件 (`.dot`) 的时长（秒）。(默认：`3600`)。\n*   **组织（Organization）**：在此处预定义您项目的组织（organization）值，以避免插件需要向 sbt 查询。\n*   **禁用作用域（Scope）**：通过禁用您不感兴趣的依赖作用域（例如 `Test`, `Provided`）来提高分析速度。\n\n这些设置按 IntelliJ 项目存储在 `.idea/bitlap.sbt.dependency.analyzer.xml` 中。删除此文件将重置设置并清除缓存。\n\n## ❗ 故障排除\n\n### 问题：\"Caused by: java.io.IOException: Could not create lock for ...\"\n此错误可能由于插件使用 sbt shell 与 IntelliJ IDEA 内部的项目重新加载/构建机制之间的冲突而引起。\n*   **解决方案**：使用 **IntelliJ IDEA 内的 sbt shell** 来重新加载 (`sbt reload`) 或构建 (`sbt compile`) 您的项目，而不是使用 IDE 的内置按钮。\n\n\n### 问题：无法分析模块间的依赖关系\n如果插件无法确定项目组织（organization），它可能无法正确解析模块间的依赖关系。\n*   **解决方案**：通过以下任一方式确保插件知道您的项目组织：\n    1.  在插件的[设置](#settings)中设置 **组织（Organization）** 值。\n    2.  在您的 `build.sbt` 中使用 `ThisBuild / organization` 或 `inThisBuild(...)` 全局定义 `organization` 设置。\n\u003e **注意**：未在根项目的 `dependsOn` 子句中声明的子模块将不会被解析。\n\n## 🔍 技术细节\n\n1. 插件执行多个 sbt 命令 (`organization`, `moduleName`, `dependencyDot`, `reload`, `update`) 来收集依赖信息。已实施重大优化以尽量减少这些命令的数量和影响。\n2. 插件复制了 [intellij-community](https://github.com/JetBrains/intellij-community) 项目中的 Kotlin UI 代码，并使用 [kotlin-plugin](https://github.com/bitlap/kotlin-plugin) 进行编译。\n\n## 🤝 贡献\n\n欢迎贡献！请随时在 [GitHub](https://github.com/bitlap/sbt-dependency-analyzer) 上提交问题、功能请求或拉取请求。\n\n## 🙏 致谢\n\n**JetBrains 支持**：此项目使用 JetBrains IntelliJ IDEA 开发。我们感谢 JetBrains 提供免费许可证，极大地支持了其开发。\n\n\u003ca href=\"www.jetbrains.com\"\u003e\n\u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg?_gl=1*8f2ovk*_ga*NTY2NTA4Mzg1LjE2NzU3MzgzMTI.*_ga_9J976DJZ68*MTcwMzIwOTE4NS4xODUuMS4xNzAzMjA5NDYzLjI4LjAuMA..\u0026_ga=2.177269094.2105719560.1703209186-566508385.1675738312\" alt=\"IntelliJ IDEA logo.\"\u003e\n\u003c/a\u003e\n\n\u003cbr /\u003e\n\n\n[badge:build]: https://github.com/bitlap/sbt-dependency-analyzer/actions/workflows/ScalaCI.yml/badge.svg\n[plugin-logo]: https://github.com/bitlap/sbt-dependency-analyzer/blob/master/logo.svg\n[badge:license]: https://img.shields.io/github/license/bitlap/sbt-dependency-analyzer.svg?style=flat-square\n[badge:release]: https://img.shields.io/github/release/bitlap/sbt-dependency-analyzer.svg?sort=semver\u0026style=flat-square\u0026colorB=0097A7\n[badge:version]: https://img.shields.io/jetbrains/plugin/v/22427.svg?style=flat-square\u0026colorB=2196F3\n[badge:downloads]: https://img.shields.io/jetbrains/plugin/d/22427.svg?style=flat-square\u0026colorB=5C6BC0\n\n[gh:sbt-dependency-analyzer]: https://github.com/bitlap/sbt-dependency-analyzer\n[gh:releases]: https://github.com/bitlap/sbt-dependency-analyzer/releases\n[gh:workflows-build]: https://github.com/bitlap/sbt-dependency-analyzer/actions/workflows/ScalaCI.yml\n[gh:license]: https://github.com/bitlap/sbt-dependency-analyzer/blob/master/LICENSE\n[plugin-homepage]: https://plugins.jetbrains.com/plugin/22427-sbt-dependency-analyzer\n[plugin-versions]: https://plugins.jetbrains.com/plugin/22427-sbt-dependency-analyzer/versions\n","funding_links":["https://blog.dreamylost.cn/donate/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitlap%2Fsbt-dependency-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitlap%2Fsbt-dependency-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitlap%2Fsbt-dependency-analyzer/lists"}