Skip to content
Test and Visualize and Manage Dependencies of classes and packages in JVM Byte Code (think Scala and Java)
Scala CSS Java HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
check/src trusting the automatic merge Jun 22, 2016
core/src handled fatal analysis failure due to JVM bug. Aug 31, 2016
degraph/src updated version numbers as preparation for release Sep 5, 2016
gradle/wrapper updated version numbers as preparation for release Sep 5, 2016
jdk8tests/src Removed failing tests. Jun 2, 2018
.gitignore fixed build.gradle file so idea can handle it. Aug 27, 2016
build.gradle Removed versions plugin. Jun 2, 2018 [Gradle Release Plugin] - new version commit: '0.1.3'. Mar 23, 2015
gradlew Using ASM API level 5, to support Java 8 type annotations. Mar 7, 2015
gradlew.bat build a gradle wrapper (gradle version 1.2) Nov 16, 2012
license.txt trying to adhere to the relevant licenses. Probably failed. Jun 24, 2014 updated version numbers as preparation for release Sep 5, 2016
shippable.yml fixed scala version to most recent maintenance version Oct 11, 2015

I'm no longer maintaining this library

Do you want to take over? I'd be happy to hand it over and give tips about what I would do if I'd still be able to find enough time to maintain it.

Until that happens I can't recommend Degraph any more :-(

You might want to look into ArchUnit and JQAssistant.

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

You can’t perform that action at this time.