Das Problemprotokoll in eclipse zeigt an, dass "ein Zyklus im Build-Pfad des Projekts gefunden wurde ..." Sie haben eine Idee, was zu tun ist, um diese zyklischen Abhängigkeiten los zu werden? Ich weiß nicht, welche Projekte voneinander abhängig sind.
In der Projekteinstellung können Sie die Abhängigkeiten sehen, was Sie tun könnten, ist alle Abhängigkeiten zu entfernen und einen dep nach dem anderen hinzuzufügen. Ein Zyklus bedeutet, dass Sie es nicht so gemacht haben sollten. Ihre Lösungen nach dem Identifizieren der Klassen, lassen Sie sagt Ihr großes Projekt A erfordert Klasse CB1 von sekundären Projekt B und CB1 erfordert Klasse CA1 von Projekt A:
Eine zyklische Abhängigkeit in der Eclipse zeigt an, dass es einen Zyklus in den Buildpfaden zwischen Projekten in Eclipse gibt.
Wenn Sie also 5 Projekte haben, sagen wir A, B, C, D und E, dann könnte eine zyklische Abhängigkeit sein:
Daher ist A->B->D->A
ein Zyklus.
Aufgrund dieses Zyklus weiß Eclipse nicht, welches Projekt zuerst kompiliert werden soll.
Sie müssen Ihren Code umgestalten, um diese zyklische Abhängigkeit zu entfernen. Wenn der tatsächliche Code keine Abhängigkeiten aufweist, entfernen Sie die nicht benötigten Buildpfadeinträge.
Es gibt drei Möglichkeiten, die zyklische Abhängigkeit zwischen Projekten in Eclipse zu entfernen,
1. Gehe zum Projekt- & gt; Java-Compiler- & gt; Gebäude - & gt; Aktivieren Sie projektspezifische Einstellungen.
Wählen Sie Build-Pfad Probleme und geben Sie eine Warnung als Option für zirkuläre Abhängigkeit.
2. Gehe zum Projekt- & gt; Java Build Pfad. Wählen Sie auf der Registerkarte "Projekte" das Projekt aus und entfernen Sie es.
3.Gehen Sie zu Ihrem META-INF Ordner, öffnen Sie MANIFEST.MF. Auf der Registerkarte MANIFEST.MF können Sie das zyklisch abhängige Projekt in der Spalte "Paket importieren" sehen.
Entfernen Sie das Projekt aus der Spalte.
Die erste Option löst den Fehler nicht wirklich. Die zweite und die dritte Option sind der richtige Weg, um diese Abhängigkeit zu lösen.
Um die Abhängigkeiten zwischen einfachen Java-Projekten herauszufinden, gehen Sie zu Projekteigenschaften | Java-Erstellungspfad | Projekte. Wenn Sie J2EE-Projekte haben, gibt es eine zusätzliche Einstellung in Projekteigenschaften | Projekt Referenzen. Überprüfen Sie diese für all Ihre Projekte, erstellen Sie das Diagramm auf einem Blatt Papier (oder Bildschirm) und sehen Sie, was Sie tun können, um den Zyklus zu unterbrechen.
Normalerweise hat ein gesundes Abhängigkeitsdiagramm die Form eines Sterns, wobei ein Kernprojekt gemeinsame Ressourcen enthält und jedes Blattprojekt eine bestimmte Benutzerfunktionalität implementiert. Im Detail kann der Kern tatsächlich aus mehreren voneinander abhängigen Projekten bestehen; dasselbe für größere Blätter.
Ein typischer Weg aus einem Abhängigkeitszyklus ist das Zusammenführen mehrerer eng gekoppelter Projekte.
Sie müssen möglicherweise Ihre Projekte oder den Code selbst umgestalten. Es könnte ein Problem mit der Verpackung mit Ihrer Anwendung sein.
Ich war vor langer Zeit auf dieses Problem gestoßen, und obwohl ich vergessen habe, wie ich das gelöst habe, hatte ich den Empfänger, als es darum ging, von einer Klasse im erforderlichen Projekt zu einer im anfordernden Projekt zu kommunizieren Installieren Sie ein java.lang.reflect.Method-Objekt im Absender, wo es aufgerufen werden könnte, ohne die sendee-Klasse im Code des Absenders zu deklarieren.
Ich bin mir sicher, dass es dafür bevorzugte Wege gibt, wie Sender und Empfänger eine Schnittstelle teilen, aber im Hinblick auf die Codierungsökonomie scheint dies die einfachste zu sein.
Wie andere Antworten zu sagen schienen, scheint dies keine echte Zirkularität zu sein, sondern eher ein Artefakt des Eclipse-Designs.