2011-11-15 16:01:32 +01:00
|
|
|
sbt-dependency-graph
|
|
|
|
|
====================
|
|
|
|
|
|
|
|
|
|
Create a graph (in graphml format) from your project's dependencies.
|
|
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
* Simple Build Tool
|
|
|
|
|
|
|
|
|
|
How To Use
|
|
|
|
|
----------
|
|
|
|
|
|
2011-11-15 16:36:33 +01:00
|
|
|
For sbt 0.11, add sbt-assembly as a dependency in `project/plugins.sbt`:
|
|
|
|
|
|
|
|
|
|
```scala
|
|
|
|
|
addSbtPlugin("net.virtualvoid" % "sbt-dependency-graph" % "0.5")
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
or, alternatively, in `project/plugins/project/build.scala`:
|
2011-11-15 16:01:32 +01:00
|
|
|
|
|
|
|
|
```scala
|
|
|
|
|
import sbt._
|
|
|
|
|
|
|
|
|
|
object Plugins extends Build {
|
|
|
|
|
lazy val root = Project("root", file(".")) dependsOn(
|
2011-11-15 16:36:33 +01:00
|
|
|
uri("git://github.com/jrudolph/sbt-dependency-graph.git#v0.5") // or another tag/branch/revision
|
2011-11-15 16:01:32 +01:00
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Then, add the following in your `build.sbt`:
|
|
|
|
|
|
|
|
|
|
```scala
|
|
|
|
|
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](http://www.yworks.com/en/products_yed_about.html)
|
|
|
|
|
to format the graph to your needs.
|
|
|
|
|
|
2011-11-15 17:27:53 +01:00
|
|
|
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.jar <ivy-report-xml-path> <target-path>`.
|
|
|
|
|
|
2011-11-15 16:01:32 +01:00
|
|
|
|
|
|
|
|
Inner Workings
|
|
|
|
|
--------------
|
|
|
|
|
|
2011-11-15 17:27:53 +01:00
|
|
|
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)
|
2011-11-15 16:01:32 +01:00
|
|
|
|
|
|
|
|
License
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2011 Johannes Rudolph
|
|
|
|
|
|
|
|
|
|
Published under the [Apache License 2.0](http://en.wikipedia.org/wiki/Apache_license).
|