Подтвердить что ты не робот

Как проверить зависимости между файлами Jar?

Недавно я получил поддержку и программирование веб-системы, написанной в JSF. Код довольно грязный и избыточный, и да, никакой документации не существует.

В системе более 40 библиотек jar, и большинство из них являются избыточными из-за старых версий и тестирования. Чтобы удалить одну банку, я должен проверить, что она не импортирована в код, поэтому я искал код для пути импорта jar (я использую IntelliJ IDE), убедитесь, что он не используется, и удалил его.

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

Проблема, как я могу убедиться, прежде чем удалять банку, которая не используется другим классом jar/java?

Несмотря на то, что jars скомпилировали классы, скомпилированные классы имеют путь импорта из требуемых библиотек. Но я не могу искать их с IntelliJ (не выполняет поиск внутри файлов jars).

Единственный способ, которым я сейчас занимаюсь, - проверить систему каждый раз, когда я удаляю банку и посмотреть, могу ли я ее сломать! Это совершенно нелегкий путь из-за огромного количества тестируемых функций.

Я хочу, чтобы есть инструмент, где я могу отправить несколько java файлов /jars, и он отображает зависимости между ними.

4b9b3361

Ответ 1

Я знаю, что был инструмент, выходящий из проекта JBoss под названием JBoss TattleTale, может стоить взглянуть:

http://www.jboss.org/tattletale

Ответ 2

JDepend будет анализировать зависимости для вас для любого количества JAR, файлов классов и т.д. Относительно пакетов, которые он сообщает этим JARs должен быть тривиальным дополнительным шагом.

Ответ 3

почему вы не используете Maven для своего проекта? что поможет вам значительно управлять зависимостями.

Ответ 4

Я также нашел JarAnalyzer, но, похоже, он больше не поддерживается.

Ответ 5

Хорошо, это уже год 2013, поэтому я не уверен, был ли этот инструмент отличным в 2009 году. Просто использовал его и нашел полезным: Анализатор зависимостей классов (CDA) (V1.14) http://www.dependency-analyzer.org/ Этот инструмент имеет графический интерфейс (Swing?). После добавления библиотек lib и классов Java он отобразит зависимости на уровне Class/Package/Container (jar). Он также может показать иждивенцев. Таким образом, легко найти зависимость от банок и зависающих банок.