Как я могу визуализировать JAR (не плагин) зависимости? - PullRequest
10 голосов
/ 09 июня 2009

Я сейчас занимаюсь рефакторингом большого Java-приложения. Я разделил один из центральных (Eclipse) проектов примерно на 30 отдельных «компонентов», однако они все еще сильно взаимозависимы. Чтобы получить лучшее представление о том, что зависит от того, что я ищу, есть способ построить график зависимости времени компиляции.

Все инструменты, которые я нашел до сих пор, способны отображать зависимости пакетов или классов или зависимости между плагинами Eclipse, однако, что я имею в виду, следует просто взглянуть на настройки classpath для каждого проекта Eclipse и построить более детализированный график из этого.

Позже я пойду глубже, однако сейчас это будет означать, что я не смогу увидеть лес для всех деревьев.

Ответы [ 9 ]

8 голосов
/ 09 июня 2009

Проверьте JBoss Tattletale . Это может сделать не все, что вы просите, но стоит проверить. Это все еще относительно новый, хотя.

Инструмент предоставит вам отчеты, которые могут помочь вам

  • Определение зависимостей между файлами JAR
  • Найти пропущенные классы из пути к классам
  • Найдите, если класс находится в нескольких файлах JAR
  • Найдите, если один и тот же файл JAR находится в нескольких местах
  • Со списком того, что требует и предоставляет каждый файл JAR
  • Проверка SerialVersionUID класса
  • Поиск похожих файлов JAR с разными номерами версий
  • Поиск файлов JAR без номера версии
  • Найдите класс в файле JAR
  • Получить статус OSGi вашего проекта
  • Удалить использование черного списка API
3 голосов
/ 22 июля 2009

Structure101 способен визуализировать зависимости уровня JAR класса и метода в Jboss 5.

См. Скриншот ниже или увеличить его.

alt text

3 голосов
/ 10 июня 2009
3 голосов
/ 09 июня 2009

Один инструмент, который, я считаю, сделает то, что вы хотите, это Поймите . Это не бесплатно, но вы можете скачать бесплатную пробную версию, прежде чем вкладывать в нее деньги.

2 голосов
/ 25 ноября 2015

JDeps уже включен в JDK и показывает зависимости JAR. Например:

jdeps -R -cp "my\jar\dir\*;my\other\jar\dir\*" my\classes\dir
2 голосов
/ 26 марта 2013

Звучит как вариант использования для Degraph . Он анализирует кучу файлов классов и jar-файлов и визуализирует зависимости.

Что делает его подходящим для вашего варианта использования (я думаю), так это возможность определить произвольные группы классов, которые будут объединены. Таким образом, вы можете воспроизвести свою структуру jar, видя зависимости, особенно циклические.

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

Для быстрого понимания того, что возможно, взгляните на Примеры Degraph .

Пример для Log4j:

Log4J dependencies

2 голосов
/ 09 июня 2009

Я не уверен, существует ли (n Eclipse) инструмент для анализа пути к классам.
Может быть Понимание , упомянутое MattK может помочь.

Ближайший из всех перечисленных здесь инструментов статического анализа кода будет JarAnalyzer (без графика), способный обнаружить " Физические зависимости"среди банок.

1 голос
/ 28 октября 2012

Проверьте анализатор зависимостей класса (CDA): http://www.dependency -analyzer.org /

Я нашел его очень полезным для уборки банок.

0 голосов
/ 09 сентября 2010

для записи (и для улучшения этой базы знаний) я нашел креветок очень полезным: http://www.thechiselgroup.org/shrimp

Shrimp-Visualization

Кроме того, для легкой проверки зависимостей стоит попробовать Byecycle, но, похоже, он больше не обновляется: Byecycle

Оба инструмента также предлагают интеграцию с Eclipse.

...