Подтвердить что ты не робот

Как разрешить циклическую зависимость maven

Как мы можем разрешить циклическую зависимость maven. Предположим, что A является родительским проектом, а B и C - дочерними проектами. Если B зависит от C и C зависит от B, есть ли способ разрешить циклическую зависимость, отличную от другого проекта.

Спасибо заранее, я искал в форумах, но не смог получить точное решение. Пожалуйста, дайте мне знать, если есть какая-либо возможность.

4b9b3361

Ответ 1

Maven не разрешает циклические зависимости между проектами, потому что в противном случае неясно, какой проект сначала построить. Поэтому вам нужно избавиться от этого цикла. Одним из решений является тот, который вы уже упоминали, для создания другого проекта. Другим было бы просто переместить некоторые классы из B в C или наоборот, когда это поможет. Или иногда правильно объединять проекты B и C с одним проектом, если нет необходимости иметь два из них.

Но, не зная и не анализируя, почему ваши проекты зависят друг от друга, сложно предложить лучшее решение.

Поэтому я предлагаю вам использовать инструменты, такие как JDepend или InteliJ, чтобы найти ваш проблемные классы и основанные на них находят лучший дизайн для вашего программного обеспечения.

В большинстве случаев я создаю нечто вроде модуля интерфейса и модуля реализации, который избавляется от большинства циклов.

Ответ 2

Создание нового проекта действительно является одним из решений.

Инверсия зависимостей является вторым возможным решением.

Обратитесь к здесь для принципа ациклической зависимости.

И здесь для принципа инверсии зависимостей.