UmlGraph vs APIViz для поколения Maven javadoc - PullRequest
4 голосов
/ 11 ноября 2009

Мне интересно, есть ли какие-либо четкие причины выбрать UmlGraph вместо APIViz для генерации UML-диаграммы javadoc в сборке Maven2. Есть ли какая-либо интеграция или функции, которые есть у одной над другой, они кажутся довольно похожими?

Ответы [ 2 ]

7 голосов
/ 11 ноября 2009

Есть интересная тема здесь об UMLGraph vs apiviz (которые упоминаются в этом вопросе также и на SO), и я понимаю следующее:

  • UMLGraph старше, но действительно хорош (dixit Fowler, который имеет больший вес, чем я).
  • apiviz - это переписанный UMLGraph, но не совсем понятно, зачем его переписали.
  • «Большим» преимуществом apiviz является то, что сборка не завершится с ошибкой , если Graphviz не установлен (хотя, на мой взгляд, это не оправдывает полное переписывание).
  • apiviz не генерирует графики автоматически, вам нужно добавлять теги, а UMLGraph делает это автоматически по умолчанию (что может быть удобно), а полностью автоматические результаты удобны и просты для всех ( UMLGraph также может моделировать композиционные отношения с помощью пользовательских тегов javadocs ).
  • UMLGraph, кажется, делает больше вещей (« похоже, что apiviz не делает ничего, кроме как предоставляет представление об обобщениях и использовании интерфейса » или « использование классов, показанное UMLGraph, фактически помогает понять, как класс работает"), но я не проверял себя, и это может быть уже не так или устарело.

Итак, если ваш проект публичный, то тот факт, что apiviz изящно работает без Graphviz, это хорошо. Если у вас много классов, необходимость добавлять теги в javadoc везде - большая боль. Если вы ищете специальные функции, UMLGraph может предложить больше. На самом деле, я думаю, вам следует поэкспериментировать, так как вы, очевидно, лучше знаете свои потребности и ограничения для окончательного выбора.

4 голосов
/ 26 мая 2010

Это не соответствует действительности , что apiviz требует аннотаций для генерации графиков, поскольку в документации четко указано:

APIviz автоматически обнаруживает связь между пакетами и классами и их стереотип по умолчанию. Кроме того, вы можете использовать следующие теги doclet, чтобы добавить больше связей или сделать сгенерированную диаграмму более чистой.

...