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
Roadmap
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.
Feedback
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.