Как создать график зависимости между всеми модулями проекта Maven? - PullRequest
49 голосов
/ 03 ноября 2010

Как создать график зависимости между всеми модулями проекта Maven (кроме сторонних библиотек, таких как JUnit, SLF4J и т. Д.)? Я не мог найти способ включить все модули в один график, используя m2eclipse. Спасибо.

Ответы [ 7 ]

28 голосов
/ 03 ноября 2010

Если * m21 * График зависимостей в m2eclipse не отвечает вашим потребностям, возможно, стоит взглянуть на Maven Graph Plugin и, в частности, graph:reactor goal.

ОБНОВЛЕНИЕ : функция График зависимостей была удалена в m2eclipse 1.0 .Для получения дополнительной информации см .: Maven POM-редактор: отсутствует график зависимостей

9 голосов
/ 18 января 2012

Другим вариантом является плагин com.github.janssk1 maven. . Этот плагин выводит зависимости в файл graphml, который можно открывать и редактировать в редакторе, например yEd.

Чтобы создать файл graphml:

mvn com.github.janssk1:maven-dependencygraph-plugin:1.0:graph

Этот плагин в настоящее время не предоставляет какого-либо механизма исключения сторонних зависимостей, AFAICT, но их можно удалить вручную из графика, используя yEd или через таблицу стилей XSLT, которая выполняет пост-обработку файлов graphml. Вот простая таблица стилей, которая удалит сторонние зависимости (любые зависимости, не начинающиеся с пакета, предоставленного параметром "internal"):

<?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 2.0-совместимый процессор, такой как Saxon:

saxon input.graphml exclude-third-party-deps.xsl internal="my.package" > input-internal.graphml
6 голосов
/ 24 июня 2015

там есть именно то, что вам нужно, это называется Pom Explorer .

Вы можете найти сайт здесь: github.com / ltearno / pom-explorer

Это инструмент для работы над графиком Maven проектов.В качестве тизера я могу сказать, что на моей машине он анализирует 4000 файлов pom.xml за 4 секунды.Затем над анализируемым графом pom предоставляется множество функциональных возможностей:

  • анализ зависимостей (кто зависит от GAV, от которого зависит этот GAV, с транзитивностью), разрешение
  • (исследователь pom знаетгде определены свойства, он управляет зависимостями и импортом bom),
  • манипулирование (вы можете использовать его для преобразования вашего pom-графа, скажем, если вы хотите, чтобы во многих проектах использовалась новая версия зависимости),
  • build (pom explorer анализирует ваш pom-график и знает, в каком порядке они должны быть построены, затем создает все! Он может даже просматривать каталоги ваших проектов на предмет изменений),
  • экспорт (сегодня есть CSVи экспорт GRAPHML), визуализация
  • (pom explorer может показать интерактивную настраиваемую 3D-визуализацию графика ваших проектов).

Сейчас он в активной разработке, так что нестесняйтесь попробовать, сообщать об ошибках и запрашивать полезные функции!Документация также еще не завершена, поэтому снова не стесняйтесь спрашивать!

Спасибо

5 голосов
/ 09 ноября 2012

Оформить заказ и в этом проекте: https://github.com/roclas/pomParser

Он создает довольно крутой «график», по которому можно перемещаться обоими способами (вперед и назад). Идея очень проста, и вы можете легко загрузить и изменить код.

3 голосов
/ 16 августа 2013

Установленный плагин 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>
2 голосов
/ 03 ноября 2010

Разве вы не открыли pom через Eclipse и взглянули на папки-вкладки pom.xml, где одна запись называется "График зависимостей" ? Ах, извините ... что-то упускает ... Вы можете создать дерево зависимостей через mvn dependency: tree в командной строке, но это не дает графического представления. Другим лучшим решением может быть Обзорный плагин Maven

0 голосов
/ 01 мая 2018

Это может быть достаточно для некоторых людей:

Команда: mvn зависимость: дерево -Dinclude = com.yourpackage: *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...