1. ascii-graphs We need a 2.12 version of ascii-graphs. The last commit to the project is in June 2013 (https://github.com/mdr/ascii-graphs/graphs/contributors). We are now in October 2017. I opened a PR (https://github.com/mdr/ascii-graphs/pull/11) but I don't expect any progress on this front. We can maintain a fork or drop ascii-graphs. 2. ignoreMissingUpdate ignoreMissingUpdate is a tricky one. Here is some explanation: we need to duplicate the updateTask in sbt it's define as: ```scala def updateTask: Initialize[Task[UpdateReport]] = Def.task { // ... val uc0 = updateConfiguration.value // ... } ``` since it's not scoped to our task (ex: `updateConfiguration in ignoreMissingUpdate`) we cannot just do ```scala updateConfiguration in ignoreMissingUpdate := { updateConfiguration.value.withMissingOk(true) } ``` For example, the following example yield `"u2: false" ``` val update2 = TaskKey[Unit]("update2", "...") val update2Configuration = SettingKey[Boolean]("...") update2 := Def.task { val u2 = (update2Configuration in update2).value println(s"u2: $u2") }.value update2Configuration := false update2Configuration in update2 := true ``` 3. cross publishing We can use the ^ operator to publish. For example: `sbt "^ publish"` to publish for both sbt 0.13 and 1.0. |
||
|---|---|---|
| notes | ||
| project | ||
| src | ||
| .gitignore | ||
| .travis.yml | ||
| LICENSE | ||
| NOTICE | ||
| PUBLISHING | ||
| README.md | ||
| build.sbt | ||
| project.sbt | ||
| publish.sbt | ||
README.md
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 dependenciesdependencyBrowseGraph: 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 consoledependencyList: 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.graphmlfile with the project's dependencies totarget/dependencies-<config>.graphml. Use e.g. yEd to format the graph to your needs.dependencyDot: Generates a .dot file with the project's dependencies totarget/dependencies-<config>.dot. Use graphviz to render it to your preferred graphic format.ivyReport: let's ivy generate the resolution report for you project. Useshow ivyReportfor 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. Iftrue, instead of showing the dependency"[S]"is appended to the artifact name. Set tofalseif you want the scala-library dependency to appear in the output. (default: true)dependencyGraphMLFile: a setting which allows configuring the output path ofdependency-graph-ml.dependencyDotFile: a setting which allows configuring the output path ofdependency-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-treeinstead ofdependency-graph.
License
Published under the Apache License 2.0.