sbt, the interactive build tool
Go to file
Johannes Rudolph f3aadf22a0 add coda hale's repository for jerkson (needed for ls) 2012-05-20 18:06:28 +02:00
project add coda hale's repository for jerkson (needed for ls) 2012-05-20 18:06:28 +02:00
src/main use new organization 2012-02-13 11:26:14 +01:00
.gitignore initial version 2011-11-15 16:06:02 +01:00
LICENSE readme and licensing 2011-11-15 16:07:18 +01:00
README.md use new organization 2012-02-13 11:26:14 +01:00
build.sbt add information for publishing to sonatype 2012-02-13 11:18:25 +01:00
project.sbt use new organization 2012-02-13 11:26:14 +01:00
publish.sbt add information for publishing to sonatype 2012-02-13 11:18:25 +01:00

README.md

sbt-dependency-graph

Create a graph (in graphml format) from your project's dependencies.

Requirements

  • Simple Build Tool

How To Use

For sbt 0.11, add sbt-dependency-graph as a dependency in project/plugins.sbt:

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

Note: The organization has recently been changed to net.virtual-void.

or, alternatively, in project/plugins/project/build.scala:

import sbt._

object Plugins extends Build {
  lazy val root = Project("root", file(".")) dependsOn(
    uri("git://github.com/jrudolph/sbt-dependency-graph.git#v0.5.2") // or another tag/branch/revision
  )
}

Then, add the following in your build.sbt:

seq(net.virtualvoid.sbt.graph.Plugin.graphSettings: _*)

In sbt you can then use the dependency-graph task in sbt to generate a graphml file in target/dependencies.graphml. Use e.g. yEd to format the graph to your needs.

Standalone usage

You can use the project without sbt as well by either depending on the library and calling IvyGraphMLDependencies.transfrom(sourceIvyReport, targetFile) or by just getting the binary and calling it like scala sbt-dependency-graph-0.5.1.jar <ivy-report-xml-path> <target-path>.

Inner Workings

sbt/Ivy's deliver-local task create ivy-report xml-files inside .ivy2/cache. You can just open them with your browser to look at the dependency report for your project. This project takes the report xml of your project and creates a graphml file out of it. (BTW, ivy can create graphml files itself, but since I didn't want to spend to much time getting sbt to call into Ivy to create graphs, I went with the easy way here)

License

Copyright (c) 2011 Johannes Rudolph

Published under the Apache License 2.0.