Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Degraph is a tool for visualizing and testing class and package dependencies in JVM applications.

You can download it, or read the documentation.

How to build

I'm highly interested in contributions, so if you are interested, drop me a message and until I respond have a look at the source code.

Degraph uses gradle as a build tool. Since gradle is awesome you actually don't have to install gradle, you just need a working JDK installation.

Just get the sourcecode and run one of the following commands:

To execute all the tests:

gradlew test 

To create a directory that looks like you just installed Degraph:

gradlew installApp


Degraph allows to defined dependency constraints using tests written in Scala with ScalaTest or Java with JUnit. This feature will need quite some tweaking in the future:

  • Support for ignoring dependencies
  • Separating the decision to ignore dependencies not mentioned in a constraint and if one can skip steps in the chain of dependencies (i.e. splitting allow/allowDirect into multiple DSL artifacts
  • Creating a graph on test failure that visualizes the constraint violations.

Also while yed is a cool Graph editor it does way more then Degraph actually needs and misses some other features. So a standaloe (or IDE Plugin based) GUI would be nice. I'm experimenting with an HTML5 based solution.

If you have more ideas what Degraph should be able to do, just open an issue.


Please use the github issue feature for questions, bug reports or improvement requests.

If you like Degraph just say so on twitter, facebook or wherever you like.

Build Info

Build Status

Original Author

Jens Schauder


Test and Visualize and Manage Dependencies of classes and packages in JVM Byte Code (think Scala and Java)







No packages published