Плагин помогает с выносом маленького модуля из большого, размечая классы по сложности переноса.
Проект: https://github.com/pberdnik/DependenciesExample
Допустим, huge
-- большой модуль, из которого хотим перенести классы в новый модуль.
Для этого на вкладке Green Modules
отмечаем сам модуль huge
и модули, от которых будет зависеть новый -- допустим, только от core
В дереве проектов выбираем модуль huge
, в верхнем тулбаре плагина нажимаем кнопку с друмя стрелками (Run Full Analysis
),
уточняем скоуп в диалоговом окне и запускаем анализ.
p.s. Для больших проектов анализ может быть долгим, поэтому результат сохраняется в .idea.
И если изменений в коде не было, то на вкладке Green Modules
можно поменять выбор модулей и
перезапустить анализ второй кнопкой (Run Graph Analysis
)
В результате классы размечаются в следующем формате:
Name.class *размер файла* [*глубина зависимости*] {*наличие цикла*}
где глубина зависимоти = максимальная глубина из всех зависимостей класса + 1
Цвет: зеленый -- можно просто перенести, желтый -- переносу мешает одна зависимость, красный -- переносу мешает больше одной зависимости.
Примеры:
Green2.java 1 [0]
-- у класса нет зависимостей, поэтому глубина 0
Green1.java 4 [1]
-- у класса есть только зеленые зависимости глубиной 0, так что его глубина на 1 больше
Cycle1.java 2 [2] {C}
-- желтый, т.к. у класса только одна зависимость, мешающая переносу. {C} -- класс участвует в циклической зависимости.
На панели справа показываются все прямые и обратные зависимости текущего открытого класса.
-
Using IDE built-in plugin system:
Settings/Preferences > Plugins > Marketplace > Search for "dependencies-analyzer-plugin" > Install Plugin
-
Manually:
Download the latest release and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...
Plugin based on the IntelliJ Platform Plugin Template.