sbt-dependency-graph visualizes your project's dependencies, offering insights into its module relationships and overall structure. This plugin generates various representations, including ASCII trees and interactive graph visualizations, enabling a better understanding of project interdependencies. It provides a valuable tool for managing complexity and identifying potential issues within large projects.
This project offers multiple visualization options (ASCII, browser-based tree, browser-based graph) and detailed reports on dependency sizes and licenses, unlike simpler dependency lists. It’s designed for flexibility, with configurable output file paths and filtering options. The plugin includes tasks to generate graphml and dot files for use with external visualization tools.
- Dependency Tree: Displays a hierarchical tree representation of project dependencies in the console.
- Browser Visualization: Generates interactive dependency graphs and trees in a browser for enhanced exploration.
- Dependency Statistics: Provides a table summarizing transitive dependency sizes and counts.
- Reverse Dependency Lookup: Identifies modules that depend on a specific artifact.
- License Information: Groups dependencies by their declared licenses.
- Graph File Generation: Creates
.graphmland.dotfiles for external visualization tools. - Configuration Options: Offers configurable settings for filtering Scala libraries and customizing output files.
The project is currently archived, indicating it is no longer actively maintained with new features. While functional, some features may not work as expected with newer sbt versions. Documentation is relatively complete, though some known issues exist regarding graph layouts. The community support is limited due to the archive status.
Developers and project maintainers benefit from sbt-dependency-graph by gaining a clear understanding of project dependencies, identifying potential conflicts, and ensuring compliance with licensing requirements. It is useful for analyzing large projects, onboarding new team members, or debugging dependency-related issues and alternatives to manual dependency analysis.
