Как получить список классов в проекте, которые больше ничего не нужны в этом проекте - PullRequest
7 голосов
/ 14 марта 2011

Есть ли способ создать список классов в проекте Java, которые больше не нужны другим классам в этом проекте?

Вот схема, которая поможет проиллюстрировать ситуацию (надеюсь, вам понравится мойДиаграмма ASCII, так как мне не хватает представителя для использования изображения), где C и B зависят от проекта A:

         A
        / \
       /   \
      C     B

Я начал рефакторинг, переместив код из B в A, чтобы он мог бытьобщие для C и B. Однако теперь, когда я подошел к завершению рефакторинга, я хочу проверить, есть ли какие-либо классы, которые я переместил в A, которые теперь можно переместить обратно в B (классы, находящиеся в Aно не используется ни одним кодом в A)

Есть ли какой-нибудь инструмент, который я могу использовать для создания списка таких классов для меня?

Ответы [ 2 ]

6 голосов
/ 14 марта 2011

JBoss Tattletale хорошо подходит для этого.В прошлом я использовал его, чтобы выяснить, какие сторонние библиотеки больше не нужны нашему проекту, а также узнать о потенциально конфликтующих пакетах / классах, которые присутствуют в нескольких файлах JAR.

1 голос
/ 14 марта 2011

Запустите вашу программу с флагом -verbose: class для JVM.Перенаправить вывод в файл.Тренируй свою программу - запусти свои тесты или еще что-нибудь.Grep имя каждого загруженного класса.Запустите find над выходными каталогами вашей сборки, чтобы составить список всех ваших классов.Сравните результаты, чтобы найти в выходных каталогах вашей сборки что-либо, чего нет в списке загруженных классов.

...