Как создать график зависимости между всеми модулями проекта Maven (за исключением сторонних библиотек, таких как JUnit, SLF4J и т.д.)? Я не мог найти способ включить все модули в один граф, используя m2eclipse. Спасибо.
Как создать график зависимости между всеми модулями проекта Maven?
Ответ 1
Если функция Dependency Graph функции m2eclipse не отвечает вашим потребностям, возможно, посмотрите на Maven Graph Plugin и, в частности, его graph:reactor
цель.
UPDATE: в файле m2eclipse 1.0 была удалена функция Dependency Graph. Для получения дополнительной информации см.: Maven POM-Editor: График зависимости отсутствует
Ответ 2
Другим вариантом является плагин com.github.janssk1 maven-графика зависимостей. Этот плагин выводит зависимости к графическому файлу, который можно открыть и отредактировать в редакторе, таком как yEd.
Чтобы создать файл graphml:
mvn com.github.janssk1:maven-dependencygraph-plugin:1.0:graph
Этот плагин в настоящее время не предоставляет никакого механизма для исключения зависимостей сторонних разработчиков, AFAICT, но их можно удалить вручную из графика с помощью yEd или с помощью таблицы стилей XSLT, которая обрабатывает файлы графа. Вот простая таблица стилей, которая удалит зависимости третьей стороны (любая зависимость не начинается с пакета, предоставленного "внутренним" параметром):
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:gml="http://graphml.graphdrawing.org/xmlns/graphml"
version="2.0">
<xsl:output method="xml"/>
<xsl:param name="internal"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="gml:node[not(starts-with(@id, $internal))]"/>
<xsl:template match="gml:edge[not(starts-with(@source, $internal)) or not(starts-with(@target, $internal))]"/>
</xsl:stylesheet>
И выполните его с помощью совместимого с XSLT процессора, такого как Saxon:
saxon input.graphml exclude-third-party-deps.xsl internal="my.package" > input-internal.graphml
Ответ 3
существует точно то, что вам нужно, оно называется Pom Explorer.
Вы можете найти здесь сайт: github.com/ltearno/pom-explorer
Это инструмент для работы над графиком проектов maven. В качестве тизера могу сказать, что на моей машине он анализирует 4000 pom.xml файлов за 4 секунды. Затем над анализируемым pom-графиком представлены многие функциональные функции:
- анализ зависимостей (который зависит от GAV, от которого зависит этот GAV, с транзитивностью),
- разрешение (pom explorer знает, где определены свойства, он управляет зависимостями и импортом bom),
- (вы можете использовать его для преобразования вашего pom-графа, скажем, если вы хотите, чтобы многие проекты использовали новую версию зависимости),
- build (pom explorer анализирует ваш pom-график и знает, в каком порядке они должны быть построены, тогда он строит все! он может даже смотреть ваши каталоги проектов для изменения),
- экспорт (сегодня есть CSV и экспорт GRAPHML),
- визуализация (pom explorer может показать вам интерактивную трехмерную настраиваемую визуализацию графика ваших проектов).
В настоящее время он находится в активной разработке, поэтому не стесняйтесь попробовать его, сообщить об ошибках и запросить полезные функции! Документация еще не завершена, так что не стесняйтесь спрашивать!
Спасибо
Ответ 4
Оформить этот проект также: https://github.com/roclas/pomParser
Он создает довольно крутой "график", который можно перемещать в обоих направлениях (вперед и назад). Идея очень проста, и вы можете легко загрузить и изменить код.
Ответ 5
Установленный плагин Maven Graph: http://mvnplugins.fusesource.org/maven/1.10/maven-graph-plugin/index.html, настроил его таким образом, чтобы скрывать зависимые от сторонних разработчиков. Отлично работает.
<profile>
<id>graph</id>
<pluginRepositories>
<pluginRepository>
<id>mvnplugins.fusesource.org</id>
<url>http://mvnplugins.fusesource.org/repo/release</url>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.fusesource.mvnplugins</groupId>
<artifactId>maven-graph-plugin</artifactId>
<version>1.10</version>
<configuration>
<hideExternal>true</hideExternal>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Ответ 6
Разве вы не открыли pom через Eclipse и не посмотрели на вкладки pom.xml, где одна запись называется "Dependency Graph" ? Ах, извините... что-то надзор... Вы можете создать дерево зависимостей через mvn dependency: tree в командной строке, но это не создает графического представления. Другим лучшим решением может быть Maven Overview Plugin
Ответ 7
Я также создал инструмент для этого. Я провел день, взламывая его, так что все еще очень экспериментально =) Тестирование и вклад в код приветствуются!
Я называю это Maven Repository Dependency Visualizer. Он не только показывает зависимости, но и все задействованные артефакты.
С помощью этого ввода:
java -jar build/libs/maven-repository-dependency-visualizer-*-SNAPSHOT.jar \
-r http://repo1.maven.org/maven2 \
-fgs se.bjurr.violations \
-g se.bjurr.violations \
-a violation-comments-to-gitlab-gradle-plugin \
-v 1.9
- Репозиторий, например Nexus или Artifactory.
- Включить одну или несколько групп.
- Группа, артефакт и версия.
Он выведет график, показывающий отношения между всеми артефактами, которые:
- Данный артефакт зависит от.
- Зависит от данного артефакта.
- Зависит от любого артефакта, от которого зависит данный артефакт.
Его можно использовать для:
- Быстрое понимание программного обеспечения, разрабатываемого организацией.
- Определите, как должны конструироваться конвейеры доставки.
- Найдите странные зависимости между артефактами.
- И многое другое =)