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?


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

UMLGraph - Declarative Drawing of UML Diagrams

Build Status

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.


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).


repositories { maven { url '' } }
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")



Jar download: