UMLGraph - Declarative Drawing of UML Diagrams
UMLGraph allows the declarative specification and drawing of UML diagrams. You can browse the system's documentation through this link, or print it through this link.
In order to run UMLGraph, you need to have GraphViz installed in your system path. On most Linux distributions, this can be easily installed using the regular package manager.
To compile the Java doclet from the source code run ant on the build.xml file.
If you change the source code, you can run regression tests by executing ant test.
Visit the project's home page for more information.
Compatibility
If you build against Java 8, please use latest version of 5.X of the Doclet.
Since Java 9 doclet APIs where completely rewritten, the Doclet in version 6 supports only supports Java 9 and above.
Development versions
In order to use development versions, you can use JitPack. Note that as this is compiled on demand, you may sometimes see a "Read timed out" when the package is recompiled, and it should be fine a few seconds later. And because the master branch can change any time, you may want to use a versioned snapshot instead (see the Jitpack documentation for details).
Gradle:
repositories { maven { url 'https://jitpack.io' } }
configurations { umlgraph }
dependencies { umlgraph 'com.github.dspinellis:UMLGraph:master-SNAPSHOT' }
javadoc {
doclet = 'org.umlgraph.doclet.UmlGraphDoc'
docletpath = configurations.umlgraph.files.asType(List)
tags("hidden:X", "opt:X", "has:X", "navhas:X", "assoc:X", "navassoc:X",
"composed:X", "navcomposed:X", "stereotype:X", "depend:X")
}
Maven:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
...
<dependency>
<groupId>com.github.dspinellis</groupId>
<artifactId>UMLGraph</artifactId>
<version>master-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
Jar download: https://jitpack.io/com/github/dspinellis/UMLGraph/master-SNAPSHOT/UMLGraph-master-SNAPSHOT.jar
See also
- Mermaid diagramming and charting tool (JavaScript-based; easier syntax, good Markdown integration; interactive diagrams)
- PlantUML (Java-based; supports IDEs and more diagram types)