Круговые зависимости между классами сами по себе не являются проблемой (это особенность).
Тем не менее, вы должны проверить свой дизайн и обосновать зависимости.
Проекты Eclipse, возможно, немного перегружены. К сожалению, Eclipse на самом деле не справляется со многими (более 10) проектами, а другой отличный частичный компилятор работает медленнее, а процесс компиляции кажется более ошибочным.
В нескольких проектах разработки, в которых я принимал участие, слияние и сокращение количества проектов привело к сокращению времени сборки и уменьшению проблем сборки.
В собственных приложениях, больших и малых, и если есть вероятность, что все, кто работает над кодом, будут иметь доступ ко всему коду, то на самом деле нет смысла разделять код между проектами.
Если вас беспокоит отслеживание зависимостей, можно применить правила для зависимостей между пакетами.
Весьма распространено иметь проект «бизнес-уровня», проект уровня «данных» и проект графического интерфейса для каждого «модуля» в большом приложении, и тогда вы обязательно получите несколько циклических зависимостей, если вы не создают искусственные "интерфейсные проекты" и т. д.
Прежде чем идти дальше, чтобы удалить зависимости, подумайте, реальны ли эти зависимости, и, возможно, следует объединить проекты.
Помните, что абстрактные понятия, такие как «модули» или «слои», не обязательно означают, что у вас должны быть соответствующие проекты или папки (или что-то в этом роде). Проекты Eclipse - это группы файлов, над которыми вы работаете, не более или менее реально .
Возможно, вы захотите прочитать о уровне мифического бизнеса .