Ищите способ визуализировать структуру зависимостей моего многомодульного проекта pom
У меня довольно большой проект (~30 модулей) и я хочу визуализировать взаимозависимости модулей, за исключением сторонних.
Кажется, что существующие инструменты просто не могут справиться с реактором Maven. Плагин зависимостей maven (зависимость: цель дерева) знает, как генерировать graphml, но только для каждого модуля. И если я использую флаг добавления, он просто объединяет все в один файл, поэтому на выходе получается испорченный graphml.
Я также нашел этот инструмент, но кажется, что нет способа контролировать гранулярность модуля.
Моим последним средством будет анализ выходных данных зависимости: дерева, но я подумал, что до этого я буду консультироваться с сообществом.
1 ответ
Мне нравится https://github.com/ferstl/depgraph-maven-plugin для визуализации зависимостей в многомодульном проекте. Чтобы получить агрегированный результат в текстовом формате (например,
dependency:tree
) для ваших модулей используйте:
mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DgraphFormat=text -Dincludes=myGroupId
Синтаксис для include такой же, как и для maven-dependency-plugin includes.
Он имеет множество свойств для настройки результата / поведения. Я предпочитаю использовать его вместе с graphviz, поэтому могу использовать формат графика (по умолчанию)
dot
и позвольте ему создать
png
файл в
target
папка:
mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DcreateImage -Dincludes=myGroupId
Есть и другие интересные цели, например
example
цель - быстро поэкспериментировать со свойствами.
У меня фактически такая же ситуация. у нас есть 4 больших проекта с ~100 pom.xml на проект и зависимости между ними. я не нашел хорошего программного обеспечения.
Теперь я использую структуру 101 (structure101.com), чтобы показать мне зависимости между ними. Конечно, он не основан на maven pom.xml, но в моем случае я думаю, что проблема в том, что у меня есть огромное количество проектов maven в каждом приложении - отсутствующая архитектура программного обеспечения.
в настоящее время я пытаюсь визуализировать эти зависимости на уровне класса / пакета, а также с помощью представления развертывания ( https://en.wikipedia.org/wiki/Deployment_diagram)
Я немного помог тебе.
Программное обеспечение, которое я использовал, но ни один инструмент не был действительно хорош для моего подсчета pom.xml: