Ich habe ein Projekt
A/
|--a1
|--a2
Jetzt gibt es ein anderes Projekt in unserer Organisation
B/
|--b1
|--b2
|--b3
(Jedes Modul a1, b1 usw. und übergeordnete Projekte A, B haben ihre eigene pom.xml gemäß den Standardregeln für Eltern und Kind.)
Beide Projekte werden auf meiner lokalen Eclipse (von SVN) ausgecheckt. Ich arbeite aktiv an A.
Ich habe erfahren, dass in B eine gute gemeinsame Funktionalität (b4) entwickelt wurde, die ich verwenden musste.
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
Entwickler von b4 haben dieses b4-Modul als Artefakt im Repository unserer Organisation bereitgestellt. Ich habe die Abhängigkeit zum POM meines Moduls aufgenommen, dh zur pom.xml von a2. Eclipse hat das erforderliche Artefakt von Repo heruntergeladen und ich konnte die Klassen darin importieren.
Jetzt beginnt das Problem ... Ich musste den Quellcode von b4 aus irgendeinem Grund überprüfen und da ich B bereits auf meiner lokalen Eclipse ausgecheckt hatte, habe ich ihn von SVN aktualisiert und das Modul b4 ausgecheckt. Ich habe auch pom.xml von Modul b4 mit Zielen wie clean, package usw. ausgeführt. Nach einiger Zeit, als ich meine Codierung abgeschlossen hatte, musste ich eine JAR meines Moduls a2 erstellen. Ich habe "package" auf a2s pom.xml und BAM ausgeführt !! Fehler n Fehler für a2 Modul .. Diese Fehler waren auch nicht sehr benutzerfreundlich. Das einzige ist, dass der Name von b4 sicher in den Protokollen war.
Lösung: Nachdem ich viele Stunden lang nach vielen Lösungen gesucht hatte, führte ich "mvn -U clean install" von der Konsole in der Projektverzeichnis meines B aus (dh in ../codebase/B). Da B das übergeordnete Element ist, wurde der Befehl zur sauberen Installation für alle Module einschließlich b4 ausgeführt und erfolgreich ausgeführt. Danach habe ich "mvn -U clean install" für mein übergeordnetes Projekt A ausgeführt. Und das hat funktioniert! Das a2-Modul wurde erfolgreich kompiliert, installiert (später verpackt).
Hier war wichtiger Punkt, wenn b4 in Ihrem Arbeitsbereich ist, installieren Sie nicht nur b4. Sie müssen das vollständige B neu installieren. Ich bin auf diese Lösung gekommen, nachdem ich die Antwort von Zuill gelesen hatte
BEARBEITEN: Noch etwas zu beachten: Wenn ich das B-Projekt nicht in der lokalen Umgebung ausgecheckt hätte, wäre dieses Problem möglicherweise nicht bei mir aufgetreten. Ich neige dazu zu glauben, dass dies passiert ist, weil ich B in meinem lokalen Arbeitsbereich ausgecheckt habe.