Найти какой модуль импортировал другой модуль - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно выяснить, почему какой-то модуль включается в компиляцию.

Существует некоторый класс, который не должен быть включен, и я думаю, что есть неиспользуемый импорт или плохая архитектура, которая требует ненужного импорта. Есть ли способ узнать, какие модули импортируют какой-либо модуль, какие модули импортируют эти модули, которые включают этот модуль, и т. Д., Отслеживая его до основного класса приложения?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Я только что пришел к очень простой идее: просто удалите этот файл, и в местах, где этот модуль импортирован, будут ошибки компиляции.

0 голосов
/ 09 ноября 2018

Вы можете использовать -D dump-dependencies для этого, и в этом случае компилятор сгенерирует два файла, которые можно использовать для отслеживания графика зависимости в обоих направлениях:

  • dump/<target>/.dependants.dump
  • dump/<target>/.dependencies.dump

Существует также удобный онлайн-инструмент , созданный Mark Knol , который очень помогает при анализе этих файлов. Чтобы ответить на вопрос «от чего зависит Array?», Вы можете просто загрузить два файла и ввести «массив» в поле поиска:

Удобно, что результаты также кликабельны.

...