Ответ 1
Я знаю, что был инструмент, выходящий из проекта JBoss под названием JBoss TattleTale, может стоить взглянуть:
Недавно я получил поддержку и программирование веб-системы, написанной в JSF. Код довольно грязный и избыточный, и да, никакой документации не существует.
В системе более 40 библиотек jar, и большинство из них являются избыточными из-за старых версий и тестирования. Чтобы удалить одну банку, я должен проверить, что она не импортирована в код, поэтому я искал код для пути импорта jar (я использую IntelliJ IDE), убедитесь, что он не используется, и удалил его.
Однако после компиляции кода во время тестирования произошел ряд ошибок во время выполнения. Я понял, что я удалил несколько банок, которые используются другими существующими банками.
Проблема, как я могу убедиться, прежде чем удалять банку, которая не используется другим классом jar/java?
Несмотря на то, что jars скомпилировали классы, скомпилированные классы имеют путь импорта из требуемых библиотек. Но я не могу искать их с IntelliJ (не выполняет поиск внутри файлов jars).
Единственный способ, которым я сейчас занимаюсь, - проверить систему каждый раз, когда я удаляю банку и посмотреть, могу ли я ее сломать! Это совершенно нелегкий путь из-за огромного количества тестируемых функций.
Я хочу, чтобы есть инструмент, где я могу отправить несколько java файлов /jars, и он отображает зависимости между ними.
Я знаю, что был инструмент, выходящий из проекта JBoss под названием JBoss TattleTale, может стоить взглянуть:
JDepend будет анализировать зависимости для вас для любого количества JAR, файлов классов и т.д. Относительно пакетов, которые он сообщает этим JARs должен быть тривиальным дополнительным шагом.
почему вы не используете Maven для своего проекта? что поможет вам значительно управлять зависимостями.
Я также нашел JarAnalyzer, но, похоже, он больше не поддерживается.
Хорошо, это уже год 2013, поэтому я не уверен, был ли этот инструмент отличным в 2009 году. Просто использовал его и нашел полезным: Анализатор зависимостей классов (CDA) (V1.14) http://www.dependency-analyzer.org/ Этот инструмент имеет графический интерфейс (Swing?). После добавления библиотек lib и классов Java он отобразит зависимости на уровне Class/Package/Container (jar). Он также может показать иждивенцев. Таким образом, легко найти зависимость от банок и зависающих банок.
Там также ClassDep из Jini SDK.
http://java.sun.com/products/jini/2.0/doc/api/com/sun/jini/tool/ClassDep.html