Поиск неиспользованных банок, используемых в проекте затмения - PullRequest
63 голосов
/ 30 октября 2008

Есть ли какие-нибудь плагины / инструменты, доступные для прохождения пути к классам проекта затмения (или рабочей области) и выделения любых неиспользованных jar-файлов?

Ответы [ 5 ]

46 голосов
/ 30 октября 2008

ClassPathHelper - хорошее начало.

Он автоматически определяет банки-сироты и многое другое.

Единственное ограничение - это зависимости, которые не определены в классах, например в конфигурационных файлах внедрения зависимостей.

У вас также есть другие варианты / дополнения, такие как:

  • workingfrog "Relief" , который опирается на способность иметь дело с реальными объектами, изучая их форму, размер или относительное место в пространстве, он дает "физический" вид пакетов Java, типов и полей и их отношения, облегчая им отношения.
  • Детектор ненужного кода : подключаемый модуль Eclipse для поиска ненужного (мертвого) общедоступного кода Java.
28 голосов
/ 16 марта 2011

UCDetector не помогает для этого: он не работает на JAR. А для classpathHelper я не смог найти простой способ перечисления потерянных JAR-файлов (кстати, если у кого-то есть учебник для этого, мне интересно).

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

mvn dependency:analyze

И вы сразу получите список неиспользованных JAR-файлов в ваших зависимостях. Очень удобно!

7 голосов
/ 30 октября 2008

Вы можете использовать один из следующих плагинов: UCDetector или Помощник Classpath

6 голосов
/ 23 июля 2015

Я нашел очень быстрый и интересный инструмент для архивирования этой цели:

http://tattletale.jboss.org/

Просто распакуйте программу и запустите:

java -Xmx512m -jar tattletale.jar ~/myjavaproject/mydistribution output

Это создаст очень впечатляющий отчет с различными точками (текст с их сайта):

  • Определение зависимостей между файлами JAR
  • Найти пропущенные классы из пути к классам
  • Найдите, если класс / пакет находится в нескольких файлах JAR
  • Найдите, если один и тот же файл JAR находится в нескольких местах
  • Со списком того, что требует и обеспечивает каждый файл JAR
  • Проверка SerialVersionUID класса
  • Поиск похожих файлов JAR с разными номерами версий
  • Поиск файлов JAR без номера версии
  • Найти неиспользуемые архивы JAR
  • Идентифицировать запечатанные / подписанные архивы JAR
  • Найдите класс в файле JAR
  • Получить OSGi-статус вашего проекта
  • Удалить использование черного списка API
  • И создавать одинаковые отчеты для ваших архивов .WAR и .EAR
0 голосов
/ 11 февраля 2013

Я знаю, что это старый, но если кто-то еще наткнется на это, Затмение сделает это самостоятельно.

Перейдите в Свойства проекта-> Стиль кода Java-> Очистить Выберите Eclipse [Встроенный], и он сделает следующее:

  • Изменить не статический доступ к статическим элементам, используя объявление типа
  • Изменение косвенного доступа к статическим элементам на прямой доступ (доступ через подтипы)
  • Удалить неиспользованный импорт
  • Добавить недостающие аннотации @Override
  • Добавить недостающие аннотации @Override в реализации интерфейса Методы
  • Добавить недостающие аннотации @Deprecated
  • Удалить ненужные приведения
  • Удалите ненужные теги '$ NON-NLS $'
...