UPD из 2025. Сайт UMLGraph похоже перестал поддерживаться, попробуйте PlantUML
Где-то год назад писал про различные UML-редакторы.
К сожалению, ситуация толком не изменилась, пока действительно удобного на 100% для себя инструмента для создания UML-диаграмм не нашел.
UMLet – хорошо спасает в 80% случаев для быстрого прототипирования, но иногда его не хватает.
Сейчас речь пойдет не о нем, а о UMLGraph.
Это инструмент, который позволяет осуществлять декларативный способ рисования uml-диаграмм. Другими словами UML диаграммы создаются в текстовом виде, а не рисуется мышкой. Некоторым программистам (в частности мне) работать с текстом несколько удобней, чем с мышкой и со множеством графических объектов.
Возможностей у UMLGraph довольно много, но лично меня интересовали только следующие его возможности:
1. Рисование только диаграмм классов. Использование umlgraph для создания диаграмм последовательности, развертывания и т.д. мне не интересно.
2. Встраивание полученных диаграмм в JavaDoc.
3. Связка с maven-ом.
В результате некоторых манипуляций, можно получить следующий результат:
Что нужно для этого сделать:
1. Необходимо установить Graphiz. Это утилита для рисования различных диаграмм, через нее будем создавать итоговые рисунки.
Если у вас Windows, то для этого нужно:
– Зайти на сайт http://www.graphviz.org/.
– Выбрать пункт Download.
– Прочитать лицензию, если все ОК – нажать “Agreе“.
– Выбрать дистрибутив под Windows и установить.
Если у вас например Ubuntu, то все намного проще! Поскольку graphviz есть в стандартных репах, то вы можете установить через apt:
sudo apt-get install graphviz
2. Прописать в pom.xml использование umlgraph
<project ...> ... <reporting> <plugins> <plugin> <artifactid>maven-javadoc-plugin</artifactid> <configuration> <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet> <docletartifact> <groupid>org.umlgraph</groupid> <artifactid>doclet</artifactid> <version>5.1</version> </docletartifact> <additionalparam>-views -inferrel -inferdep -quiet -hide java.* -collpackages java.util.* -qualify -postfixpackage -attributes -operations -types -nodefontclassname "Arial" -nodefontclassabstractname "Arial Italic" -nodefontclasssize 10 -nodefontname "Arial" -nodefontabstractname "Arial Italic" -nodefontsize 10 -nodefonttagname "Arial Italic" -nodefonttagsize 10 -nodefontpackagename "Arial Italic" -nodefontpackagesize 10 -edgefontsize 10 </additionalparam> <usestandarddocletoptions>true</usestandarddocletoptions> </configuration> </plugin> </plugins> </reporting> ... </project>
В additionalparam можно указать свои настройки, чтобы настроить отображение диаграмм на свой вкус и цвет. В этом примере я немного поигрался с шрифтами. Список возможных настроек можно посмотреть здесь: https://github.com/dspinellis/UMLGraph
3. Проверить, что программы из Graphiz установлены и доступен. Например можно набрать для этого в командной строке:
dot --help
4. Запустить mvn site. Как обычно в папке target появится директория с документацией.
Пару полезных заметок:
1. Чтобы исключить класс из диаграммы можно использовать опцию @hidden (см. пример PostA.java)
2. Список возможных опций можно посмотреть здесь: https://www.spinellis.gr/umlgraph/index.html
UPD. В Java 8 усилились требования к оформлению Javadoc. Можно ее ослабить добавлением в additionalparam параметра -Xdoclint:none”.
Вот так:
-Xdoclint:none -views и т.д.