Как я могу определить ненужные банки, включенные в мой проект? - PullRequest
4 голосов
/ 18 июня 2009

Я работаю в проекте Java, где используется библиотека оси 2 от Apache. Библиотека оси 2 состоит из около 20 jar-файлов, и некоторые из них не используются в проекте. Что я хочу знать, если есть метод, чтобы определить, какие из этих файлов JAR являются неиспользованными.

Я использую Eclipse IDE, и я подумал, что один из способов решения этой проблемы - добавлять один jar за раз до тех пор, пока я не получу сообщений об ошибках отсутствующих классов. Однако я не уверен, сработает ли это, поскольку некоторые из пропущенных классов появляются только во время выполнения.

Кто-нибудь знает лучший способ решить эту проблему?

Ответы [ 3 ]

6 голосов
/ 18 июня 2009

tattletale FTW

http://www.jboss.org/tattletale

JBoss Tattletale - это инструмент, который поможет вам получить обзор проекта, над которым вы работаете, или продукта, от которого вы зависите.

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

  • Определение зависимостей между файлами JAR
  • Найдите, если класс находится в нескольких файлах JAR
  • Найдите, если один и тот же файл JAR находится в нескольких местах
  • Со списком того, что требует и предоставляет каждый файл JAR
1 голос
/ 18 июня 2009

Я не думаю, что вы можете надежно удалить jar, поскольку классы могут быть разрешены во время выполнения, например используя

Class.forName(className);

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

Поскольку классы будут запрашиваться / разрешаться во время выполнения, вы можете запустить свой (всеобъемлющий) набор тестов, чтобы определить, все ли еще работает. Но в конечном итоге я бы очень осторожно удалил банки из упаковки, такой как Axis. Я предполагаю, что они там с целью. Является ли размер файла JAR действительно проблемой?

1 голос
/ 18 июня 2009

Я бы следовал вашей первоначальной идее добавлять одну банку за раз, пока она не скомпилируется.

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

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