4.3 KiB
sbt-dependency-graph
Visualize your project's dependencies.
Preliminaries
Starting with version 0.8.0, the plugin will only work for projects that use sbt 0.13.x. See the 0.7 branch for older versions that still work with sbt < 0.13.
How To Use
Since sbt-dependency-graph is an informational tool rather than one that changes your build, you will more than likely wish to
install it as a global plugin so that you can use it in any SBT project without the need to explicitly add it to each one. To do
this, add the plugin dependency to ~/.sbt/0.13/plugins/plugins.sbt:
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.0")
To add the plugin only to a single project, put this line into project/plugins.sbt of your project, instead.
This plugin is an auto-plugin which will be automatically enabled starting from sbt 0.13.5. See the compatibility notes when using this plugin with sbt < 0.13.6.
Main Tasks
dependencyTree: Shows an ASCII tree representation of the project's dependenciesdependencyBrowseGraph: Opens a browser window with a visualization of the dependency graph (courtesy of graphlib-dot + dagre-d3).dependencyGraph: Shows an ASCII graph of the project's dependencies on the sbt consolewhatDependsOn <organization> <module> <revision>: Find out what depends on an artifact. Shows a reverse dependency tree for the selected module.dependencyLicenseInfo: show dependencies grouped by declared licensedependencyGraphMl: Generates a.graphmlfile with the project's dependencies totarget/dependencies-<config>.graphml. Use e.g. yEd to format the graph to your needs.dependencyDot: Generates a .dot file with the project's dependencies totarget/dependencies-<config>.dot. Use graphviz to render it to your preferred graphic format.ivyReport: let's ivy generate the resolution report for you project. Useshow ivyReportfor the filename of the generated report
All tasks can be scoped to a configuration to get the report for a specific configuration. test:dependencyGraph,
for example, prints the dependencies in the test configuration. If you don't specify any configuration, compile is
assumed as usual.
Configuration settings
filterScalaLibrary: Defines if the scala library should be excluded from the output of the dependency-* functions. Iftrue, instead of showing the dependency"[S]"is appended to the artifact name. Set tofalseif you want the scala-library dependency to appear in the output. (default: true)dependencyGraphMLFile: a setting which allows configuring the output path ofdependency-graph-ml.dependencyDotFile: a setting which allows configuring the output path ofdependency-dot.dependencyDotHeader: a setting to customize the header of the dot file (e.g. to set your preferred node shapes).dependencyDotNodeLabel: defines the format of a node label (default set to[organisation]<BR/><B>[name]</B><BR/>[version])
E.g. in build.sbt you can change configuration settings like this:
filterScalaLibrary := false // include scala library in output
dependencyDotFile := file("dependencies.dot") //render dot file to `./dependencies.dot`
Known issues
- #19: There's an unfixed bug with graph generation for particular layouts. Workaround:
Use
dependency-treeinstead ofdependency-graph. - #39: When using sbt-dependency-graph with sbt < 0.13.6.
Compatibility notes
- sbt < 0.13.6: fallback on the old ivy report XML backend which suffers from #39
- sbt < 0.13.5: no autoplugin support, you need to add
net.virtualvoid.sbt.graph.DependencyGraphSettings.graphSettings
to your build.sbt or (~/.sbt/0.13/user.sbt for global configuration) to enable the plugin.
License
Published under the Apache License 2.0.