sbt, the interactive build tool
Go to file
Johannes Rudolph 0c59e1ba34
Merge commit 'refs/pull/140' into w/update-to-sbt-1.0
I merged these changes without actually applying them to keep authorship
information about the changes that were proposed by Masse Guillaume of
Scala Center.

On the other side of the merge I added lots of small changes which were
either inspired or just plainly copied from the ones merged in here.

In the diff you can see which changes were not taken over.
2017-10-24 17:50:20 +02:00
notes prepare 0.8.2 2016-02-01 11:01:25 +01:00
project Modernize and adapt build, update to newest versions 2017-10-23 16:26:43 +02:00
src Slight refactorings in DependencyGraphSettings 2017-10-24 17:49:22 +02:00
.gitignore initial version 2011-11-15 16:06:02 +01:00
.travis.yml Test for all sbt versions on travis 2017-10-23 16:26:43 +02:00
LICENSE readme and licensing 2011-11-15 16:07:18 +01:00
NOTICE bump version to 0.8.0 and update README to reflect changes 2015-11-25 16:50:30 +01:00
PUBLISHING update README to version 0.7.2 2013-03-02 12:46:09 +01:00
README.md Cleanup README 2017-10-23 16:14:18 +02:00
build.sbt Modernize and adapt build, update to newest versions 2017-10-23 16:26:43 +02:00
project.sbt Use sbt-compat lib 2017-09-07 17:04:59 +02:00
publish.sbt sbt-dynver produces named builds, so use those to detect when to use snapshot repo 2017-10-24 17:24:20 +02:00

README.md

sbt-dependency-graph

Join the chat at https://gitter.im/jrudolph/sbt-dependency-graph

Visualize your project's dependencies.

Usage Instructions

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.2")

To add the plugin only to a single project, put this line into project/plugins.sbt of your project, instead.

Main Tasks

  • dependencyTree: Shows an ASCII tree representation of the project's dependencies
  • dependencyBrowseGraph: 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 console
  • dependencyList: Shows a flat list of all transitive dependencies on the sbt console (sorted by organization and name)
  • whatDependsOn <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 license
  • dependencyStats: Shows a table with each module a row with (transitive) Jar sizes and number of dependencies
  • dependencyGraphMl: Generates a .graphml file with the project's dependencies to target/dependencies-<config>.graphml. Use e.g. yEd to format the graph to your needs.
  • dependencyDot: Generates a .dot file with the project's dependencies to target/dependencies-<config>.dot. Use graphviz to render it to your preferred graphic format.
  • ivyReport: let's ivy generate the resolution report for you project. Use show ivyReport for 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. If true, instead of showing the dependency "[S]" is appended to the artifact name. Set to false if you want the scala-library dependency to appear in the output. (default: true)
  • dependencyGraphMLFile: a setting which allows configuring the output path of dependency-graph-ml.
  • dependencyDotFile: a setting which allows configuring the output path of dependency-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-tree instead of dependency-graph.

License

Published under the Apache License 2.0.