Ich habe ein Projekt
A/
|--a1
|--a2
Jetzt gibt es ein weiteres Projekt in unserer Organisation
B/
|--b1
|--b2
|--b3
(Jedes Modul a1, b1 usw. und die übergeordneten Projekte A, B haben jeweils ihre eigene pom.xml gemäß den Standard-Mavenregeln für Eltern und Kinder)
Beide Projekte sind lokal in meinem Eclipse (von SVN) ausgecheckt. Ich arbeite aktiv an A.
Ich habe erfahren, dass in B eine gute gemeinsame Funktionalität (b4) entwickelt wurde und ich sie benötigte.
B/
|--b1
|--b2
|--b3
|--b4 (NEU)
Der Entwickler von b4 hat dieses b4-Modul als Artefakt in unserem Organisationsrepository bereitgestellt. Ich habe die Abhängigkeit in die POM meines Moduls aufgenommen, d.h. in die pom.xml von a2. Eclipse hat das erforderliche Artefakt aus dem Repository heruntergeladen und ich konnte die darin enthaltenen Klassen importieren.
Jetzt fängt das Problem an... Ich musste den Quellcode von b4 aus irgendeinem Grund überprüfen, und da ich bereits B in meinem lokalen Eclipse ausgecheckt hatte, habe ich es von SVN aktualisiert und das Modul b4 ausgecheckt. Ich habe auch die pom.xml des Moduls b4 mit Zielen wie "clean", "package" usw. ausgeführt. Nach einiger Zeit, als ich mit meinem Codieren fertig war, musste ich ein JAR meines Moduls a2 erstellen. Ich habe "package" auf a2's pom.xml ausgeführt und BAM!! Fehler für das a2-Modul... Diese Fehler waren auch nicht sehr benutzerfreundlich. Das einzige, was sicher war, war der Name von b4 in den Protokollen.
Lösung: Nachdem ich stundenlang nach Lösungen gesucht habe, habe ich "mvn -U clean install" von der Konsole in meinem B-Projektverzeichnis (d.h. in ../codebase/B) ausgeführt. Da B das übergeordnete Projekt ist, wurde der Befehl clean install für alle Module aus, einschließlich b4, 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 gepackt).
Ein wichtiger Punkt hier war, dass, wenn b4 in Ihrem Workspace ist, nicht nur b4 installiert wird. Sie müssen B komplett clean installieren. Ich bin zu dieser Lösung gekommen, nachdem ich eine Antwort von Zuill gelesen hatte
EDIT: Noch eine Sache hier zu beachten ist, dass, wenn ich B-Projekt nicht in der lokalen Umgebung ausgecheckt hätte, hätte dieses Problem für mich möglicherweise nicht aufgetreten. Ich neige dazu zu glauben, dass dies passiert ist, weil ich B in meinem lokalen Workspace ausgecheckt hatte.
5 Stimmen
Wenn jemand (wie ich) aufgrund eines HTTP-Repository-Fehlers in Maven> 3.8.1 auf ein Problem stößt, ähnlich wie
maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories:
, siehe hier: stackoverflow.com/q/67001968/63465310 Stimmen
@aksh1618 Danke. Das war die Lösung für mein Problem.