Git Product home page Git Product logo

sbt-dependency-graph's Introduction

sbt-dependency-graph

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

Visualize your project's dependencies.

DEPRECATED: This plugin has been replaced by built-in sbt plugin in sbt 1.4+, please replace your dependency on this plugin with the following statement addDependencyTreePlugin

Note: Under sbt >= 1.3.x some features might currently not work as expected or not at all (like dependencyLicenses).

Usage Instructions

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:

For sbt 1.4+ use:

addDependencyTreePlugin

For sbt < 1.3 use:

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.10.0-RC1")

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.10 and sbt 1.0.x. For versions supporting older versions of sbt see the notes of version 0.8.2.

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).
  • dependencyBrowseTree: Opens a browser window with a visualization of the dependency tree (courtesy of jstree).
  • 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. The <revision> argument is optional.
  • 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.
  • dependencyGraph: Shows an ASCII graph of the project's dependencies on the sbt console (only supported on sbt 0.13)
  • ivyReport: Lets ivy generate the resolution report for you project. Use show ivyReport for the filename of the generated report

The following tasks also support the toFile subtask to save the contents to a file:

  • dependencyTree
  • dependencyList
  • dependencyStats
  • dependencyLicenseInfo

The toFile subtask has the following syntax:

<config>:<task>::toFile <filename> [-f|--force]

Use -f to force overwriting an existing file.

E.g. test:dependencyStats::toFile target/depstats.txt will write the output of the dependencyStats in the test configuration to the file target/depstats.txt but would not overwrite an existing file.

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.

Note: If you want to run tasks with parameters from outside the sbt shell, make sure to put the whole task invocation in quotes, e.g. sbt "whatDependsOn <org> <module> <version>".

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.

sbt-dependency-graph's People

Contributors

2m avatar alexbezhan avatar alkersan avatar aruediger avatar benmccann avatar berleon avatar bjaglin avatar blaisorblade avatar ches avatar chikei avatar dwijnand avatar eed3si9n avatar gitter-badger avatar gseitz avatar jatcwang avatar jaytaylor avatar jrudolph avatar leifwickland avatar masseguillaume avatar mdr avatar neko-kai avatar retronym avatar sderosiaux avatar sullis avatar xuwei-k avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.