Ich habe mein Maven-Projekt als 1 Shell-Projekt und 4 untergeordnete Module eingerichtet. Wenn ich versuche, die Shell zu bauen. Ich bekomme:
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project module1:1.0_A0 (C:\module1\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Failure to find shell:pom:1.0_A0 in http://nyhub1.ny.ssmb.com:8081/nexus/content/repositories/JBoss/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 5, column 11 -> [Help 2]
Wenn ich versuche, ein einzelnes Modul zu erstellen, wird der gleiche Fehler angezeigt. Ersetzen Sie nur Modul1 durch ein beliebiges Modul.
Lassen Sie sie alle die Eltern in ihren Poms referenzieren.
<parent>
<artifactId>shell</artifactId>
<groupId>converter</groupId>
<version>1.0_A0</version>
</parent>
Hier sind die relevanten Teile des Shell Pom:
<groupId>converter</groupId>
<artifactId>shell</artifactId>
<version>1.0_A0</version>
<packaging>pom</packaging>
<name>shell</name>
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
<module>module4</module>
</modules>
<relativePath>..</relativePath>
unter<parent></parent>
für mich funktioniert.mvn install -N & mvn install
Antworten:
Nur als Referenz.
Die Freuden von Maven.
Das Setzen des relativen Pfads der Module zu ../pom.xml löste das Problem.
Das
parent
Element verfügt über einrelativePath
Element, das Sie auf das Verzeichnis des übergeordneten Elements verweisen müssen. Der Standardwert ist..
quelle
<relativePath>..</relativePath>
unter hinzugefügt<parent></parent>
?../pom.xml
nach../<parent folder>/pom.xml
.Es kann auch behoben werden, indem die richtige
settings.xml
Datei in das~/.m2/
Verzeichnis gestellt wird.quelle
maven.repo
.Ein alternativer Grund könnte auch sein, dass das übergeordnete Artefakt aus einem Repository stammt, auf das nicht zugegriffen werden kann
pom.xml
, normalerweise aus einem privaten Repository. Die Lösung bestand darin, dieses Repository bereitzustellen inpom.xml
:In meinem Fall war das Problem aufgrund von Eclipse noch komplizierter: Das Repository war nur in einem speziellen Profil (
<profiles><profile><id>activate-private-repo</id><repositories>...
) aktiv, und die Maven-GUI in Eclipse erlaubte nicht, dieses Profil über eineCtrl+Alt+P
Verknüpfung festzulegen .Die Lösung bestand darin, das Repository vorübergehend (unbedingt) außerhalb des Profils zu deklarieren, das
Alt+F5
Maven Update-Projekt zu starten , das Profil zu aktivieren und die Repository-Deklaration wieder in das Profil aufzunehmen. Dies ist eher ein Eclipse-Fehler, kein Maven-Fehler.quelle
Nicht auflösbares übergeordnetes POM: Dies bedeutet, dass Sie das übergeordnete Repo nicht auflösen können.
Im Debug-Modus abschneiden:
Weil das Eltern-Repo nicht Teil des Maven Central ist. Die Lösung besteht darin, in ~ m2 / eine settings.xml anzugeben, um das Ergebnis des übergeordneten POM zu erhalten. /Users/username/.m2/settings.xml
In diesem XML müssen Sie möglicherweise die Repository-Informationen angeben.
quelle
Fügen Sie einfach hinzu,
<relativePath />
damit das Elternteil in pom wie folgt aussehen sollte:quelle
Überprüfen Sie, ob in untergeordneten POMs korrekte Werte vorhanden sind
In Eclipse können Sie beispielsweise danach suchen:
quelle
<relativePath>
Wenn Sie unter einem untergeordneten Projekt erstellen, dann
<relativePath>
können Sie das übergeordnete POM auflösen.Installieren Sie das übergeordnete POM
Aber wenn Sie das untergeordnete Projekt aus seinem Ordner erstellen,
<relativePath>
funktioniert es nicht. Sie könneninstall
den übergeordneten POM zuerst in Ihr lokales Repository einfügen und dann das untergeordnete Projekt erstellen.quelle
Ersetzen Sie 1.0_A0 durch $ {project.version}
Führen Sie mvn einmal aus. Dadurch werden alle erforderlichen Repositorys heruntergeladen. Nach diesem Schritt können Sie wieder zu 1.0_A0 wechseln.
quelle
Ich hatte ein ähnliches Problem bei meiner Arbeit.
Beim Erstellen des übergeordneten Projekts ohne Abhängigkeit wurde die Datei parent_project.pom im Ordner .m2 erstellt.
Fügen Sie dann das untergeordnete Modul im übergeordneten POM hinzu und führen Sie den Maven-Build aus.
quelle
Fügen Sie eine Abhängigkeit in hinzu
pom.xml:
quelle
Ich habe dieses Problem bei mir nach einem sehr langen Versuch gelöst. Ich habe eine weitere Datei mit dem Namen "parent_pom.xml" im Dateiverzeichnis des untergeordneten Moduls im lokalen und eingefügten Inhalt von parent_pom.xml, die sich auf remote befindet, in die neu erstellte "parent_pom.xml" erstellt ". Es hat bei mir funktioniert und die Fehlermeldung ist verschwunden.
quelle
Innerhalb des relativen Pfad-Tags gehen Sie wie folgt vor
und dann RunAs-> Maven Build
Es hat bei mir funktioniert.
quelle
Ich hatte das Problem, dass zwei Reaktor-Build-pom.xml-Dateien dieselbe Artefakt-ID hatten.
quelle