Динамические зависимости Java

Я анализирую зависимости большого java-проекта. Я нашел jdeps для анализа статических зависимостей. Он показывает большой график зависимостей. Однако многие jar-файлы не найдены, например, драйверы jdbc, потому что они загружаются с помощью «Class.forName()» в коде, а jdeps находит только статические зависимости.

Каков правильный способ анализа динамических зависимостей библиотек Java?

Вы можете поймать их с помощью JVM -verbose:class, который регистрирует каждый загруженный класс. Для разделения классов, загружаемых любым контейнером или сервером приложений, который вы используете, может потребоваться определенная работа. Но есть полные пути, так что можно получить полезную информацию.

joshp 25.03.2019 09:58

Будет ли это работать, даже если класс не используется во время теста? например Я начинаю ловить с -verbose:class, но не использую драйвер mysql jdbc во время теста. Будет ли по-прежнему перехватываться зависимость jdbc? Я спрашиваю, поскольку тщательный и 100% -ный тест невозможен.

Edu 25.03.2019 10:09

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

joshp 25.03.2019 10:22
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
249
0

Другие вопросы по теме