Name: sbt-dependency-graph
Owner: Hammer Lab
Description: sbt plugin to create a dependency graph for your project
Forked from: jrudolph/sbt-dependency-graph
Created: 2017-12-07 17:55:35.0
Updated: 2017-12-07 17:55:37.0
Pushed: 2017-12-08 04:01:18.0
Size: 284
Language: Scala
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Visualize your project's dependencies.
This is a fork of jrudolph/sbt-dependency-graph to quickly provide a public release of some features (dependencyTree
filtering and writing to file, dependencyBrowseTree
); the org.hammerlab
Maven coordinates below include these.
sbt-dependency-graph is an informational tool rather than one that changes your build, so 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
for sbt 0.13 or ~/.sbt/1.0/plugins/plugins.sbt
for sbt 1.0:
btPlugin("org.hammerlab" % "sbt-dependency-graph" % "0.10.2")
To add the plugin only to a single project, put this line into project/plugins.sbt
of your project, instead.
The plugin currently supports sbt versions >= 0.13.6 and sbt 1.0.x. For versions supporting older versions of sbt see the notes of version 0.8.2.
dependencyBrowseTree
: Opens a browser window with a visualization of the dependency tree (courtesy of jstree).dependencyTree
: Shows an ASCII tree representation of the project's dependencies (see below for examples filtering the output)dependencyBrowseGraph
: Opens a browser window with a visualization of the dependency graph (courtesy of graphlib-dot + dagre-d3).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 licensedependencyStats
: Shows a table with each module a row with (transitive) Jar sizes and number of dependenciesdependencyGraphMl
: 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.dependencyGraph
: Shows an ASCII graph of the project's dependencies on the sbt console (only supported on sbt 0.13)ivyReport
: let's ivy generate the resolution report for you project. Use
show ivyReport
for the filename of the generated reportAll 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.
dependencyTree
filteringThe dependencyTree
task supports filtering with inclusion/exclusion rules:
-
+
)Dependencies are “preserved” iff:
They are then displayed if they are preserved or at least one of their transitive dependencies is preserved.
This mimics the behavior of Maven dependency:tree's includes
and excludes
parameters.
Inclusions/Exclusions can be partial-matched against any part of a dependency's Maven coordinate:
ndencyTree -foo // exclude deps that contain "foo" in the group, name, or version
ndencyTree foo // include deps that contain "foo" in the group, name, or version
Or they can be fully-matched against specific parts of the coordinate:
ndencyTree -:foo* // exclude deps whose name starts with "foo"
ndencyTree -*foo*::*bar // exclude deps whose group contains "foo" and version ends with "bar"
Inclusions and exclusions can be combined and repeated:
ndencyTree foo bar -baz // include only deps that contain "foo" or "bar" and not "baz"
In all cases, the full paths to dependencies that match the query are displayed (which can mean that dependencies are displayed even though they would have been excluded in their own right, because they form part of a chain to a dependency that was not excluded).
dependencyTree
can have its output written to a file:
t
pendencyTree -o foo
or, directly from the shell:
'dependency-tree -o foo'
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:
erScalaLibrary := false // include scala library in output
ndencyDotFile := file("dependencies.dot") //render dot file to `./dependencies.dot`
dependency-tree
instead of dependency-graph
.Published under the Apache License 2.0.