Журнал проблем в eclipse показывает: «Цикл был обнаружен в пути сборки проекта ...». Любая идея, что делать, чтобы избавиться от этих циклических зависимостей? Я не знаю, какие проекты зависят друг от друга.Как решить циклическую зависимость между различными модулями в проекте в eclipse?
ответ
В настройках проекта вы можете видеть зависимости, что вы можете сделать, это удалить все зависимости и добавить один раз за другим. Цикл означает, что вы не должны были этого делать. Ваши решения после определения классов, пусть говорит ваш большой проект А требует класса CB1 из вторичного проекта B и CB1 требует, класс CA1 от проекта А:
- Переместить класс CB1 в проекте А, чтобы удалить зависимость - -> работает, если он не создает больше зависимостей.
- извлекайте интерфейсы и используйте не зависимые интерфейсы (вам может потребоваться создать суперкласс или больше интерфейсов в зависимости от вашей структуры).
- реализовать по-разному, зачем вам нужен класс из другого проекта? попробуйте использовать общие родительские классы, если они есть
Подсказка для тех, кто использует более двух плагинов (мы используем более 700) и получаем эту ошибку, например, во время слияния: если вы войдете в свой манифест (MANIFEST.MF) -> Зависимости (вкладка) -> Зависимость Анализ, который у вас есть «Ищите циклы в графике зависимостей», который покажет вам, где у вас эти циклы. Поэтому будет легче выяснить, с чего начать. Приветствия. – mtfk
Вы можете регулировать степень тяжести круговое зависимостей в затмении:
Preferences > Java > Compiler > Building > Build path problems > Circular dependencies
Это не устраняет проблему. Он просто зарывает его. –
@ Joris: то, что вы предложили, является временным решением этой проблемы. Haan приложение отлично работает с этим параметром, но позже может оказаться большой проблемой, поскольку это может вызвать нежелательные ошибки в приложении. –
Спасибо, чувак !!!! Моя проблема была НЕ с maven (работает с консоли), но с глупым Eclipse. – MeIr
Циклическая зависимость в затмении указывает на то, что существует цикл в buildpaths между проектами в Eclipse.
Так что если у вас есть 5 проектов, скажем, A, B, C, D и Е, то циклическая зависимость может быть, что:
- требует B в его наращивании пути
- B требует D в своем пути наращивания
- D требует в своем пути наращивания
Следовательно A->B->D->A
является циклом.
Из-за этого цикла Eclipse не знает, какой проект нужно скомпилировать первым.
Чтобы удалить эту циклическую зависимость, вам необходимо реорганизовать свой код. Или, если у фактического кода нет таких зависимостей, удалите записи пути сборки, которые не нужны.
Чтобы узнать зависимости между простыми проектами Java, откройте «Свойства проекта» | Путь сборки Java | Проекты. Если у вас есть проекты J2EE, в Project Properties | Ссылки на проекты. Проверьте их для всех своих проектов, постройте график на листе бумаги (или экране) и посмотрите, что вы можете сделать, чтобы разбить цикл.
Обычно граф здоровой зависимости имеет форму звезды с основным проектом, содержащим общие ресурсы, и каждый листовой проект, реализующий определенные функции пользователя. В деталях, ядро может фактически состоять из нескольких взаимозависимых проектов; то же самое для больших листьев.
Типичный выход из цикла зависимости - это объединение нескольких тесно связанных проектов.
Возможно, вам придется реорганизовать ваши проекты или сам код. Это может быть проблемой с упаковкой с вашим приложением.
Я давно столкнулся с этой проблемой, и хотя я забыл, как я это решил, когда дело дошло до общения из класса в требуемом проекте с одним из требуемого проекта, у меня была sendee устанавливает объект java.lang.reflect.Method в отправителе, где он может быть вызван без объявления класса отправителя в коде отправителя.
Я уверен, что есть предпочтительные способы сделать это, например, когда отправитель и отправитель имеют общий доступ к интерфейсу, но с точки зрения экономики кодирования это кажется самым простым.
Как и другие ответы, похоже, это не настоящая округлость, а скорее артефакт дизайна Eclipse.
Есть три способа удаления циклической зависимости между проектами в затмении,
1.Go в Проект-> Java от компилятора> Здание -> Включить конкретные параметры проекта.
Выберите проблемы с контуром сборки и предоставьте предупреждение в качестве опции для циклической зависимости.
2.Go project-> java build path. На вкладке «Проекты» выберите проект и удалите его.
3.Пойдите в папку META-INF, откройте MANIFEST.MF. На вкладке просмотра MANIFEST.MF вы можете увидеть циклически зависимый проект в столбце «Импорт пакета:».
Удалите проект из столбца.
Первый вариант действительно не разрешает ошибку. Второй и третий варианты - это правильный способ разрешить эту зависимость.
- 1. Как решить эту циклическую зависимость в EF
- 2. Угловые JS решить циклическую зависимость
- 3. sbt: циклическая зависимость между модулями?
- 4. WPF - зависимость между модулями
- 5. Ломать циклическую зависимость в C++
- 6. как решить круговую зависимость
- 7. Невозможно создать циклическую зависимость
- 8. использования зОго :: weak_ptr решить циклическую зависимость в лямбде
- 9. Перетаскивание между различными модулями макета в Primefaces
- 10. зависимостей доли maven между различными модулями
- 11. Угловая маршрутизация между различными модулями
- 12. Глобальные переменные между различными модулями
- 13. Ломать циклическую зависимость в Dagger
- 14. Зависимость теста Maven в проекте с несколькими модулями
- 15. как разрешить циклическую зависимость maven
- 16. Как разрешить зависимость между двумя модулями
- 17. Как определить зависимость между модулями ядра?
- 18. Как использовать сигнал между различными модулями
- 19. Как управлять моими зависимостями между различными модулями?
- 20. StructureMap решить зависимость между проектами
- 21. Как разрешить зависимость между различными версиями
- 22. Как я могу разрешить циклическую зависимость весной
- 23. Как удалить эту циклическую зависимость класса?
- 24. struts2-core общая зависимость между модулями ejb
- 25. Guice проксирования поддерживать циклическую зависимость
- 26. Может ли инъекция зависимости предотвращать циклическую зависимость?
- 27. Посредник и обменивайтесь данными между различными модулями
- 28. Зависимость от maven: копирование между модулями
- 29. Коллекция Magento соединяется между различными модулями
- 30. Невозможно понять циклическую зависимость terraform
Вы можете скопировать/вставить все сообщение об ошибке в свой вопрос? Примечание. Вы можете определить, какие зависимости существуют для проекта, щелкнув правой кнопкой мыши, выбрав «Свойства» и перейдите к «Ссылки на проект». –
Кроме того, ссылки на проекты обычно не устанавливаются случайно. Используете ли вы систему сборки, такую как Maven? –
Я использую систему сборки Ant. –