Hudson-Build fehlgeschlagen: Nicht auflösbares Eltern-POM

7

Ich habe früher mit Hudson an meinem Projekt gearbeitet, und in letzter Zeit musste ich es auf einen neuen Server verschieben.

Ich habe es genau so konfiguriert, wie es ist (für alles, was ich sagen kann), aber wenn ich versuche, einen Build zu starten, schlägt es fehl und ich erhalte den folgenden Fehler:

%Vor%

Die pom.xml-Datei, als ich zum Hudson "workspace" kam, sieht so aus:

[...]

%Vor%

[...]

%Vor%

[Bearbeiten]

Tatsächlich habe ich einige wichtige Informationen vergessen:

Mein Projekt ist in drei Teile unterteilt:

business (in .jar verpackt) Web (in einem .war verpackt) Ohr (verpackt die .war und .jar in eine .ear)

Ich benutze Subversion, und unter meinem "trunk" -Ordner habe ich einen "MyProject" -Ordner, einschließlich:

%Vor%

Was passiert ist:

In meiner Hudson-Jobkonfiguration habe ich das SVN-Feld "repository URL" mit:

gefüllt
  

Ссылка

und hier ist die "pom.xml" aus dem Ordner "MyProject":

%Vor%

, so befindet sich das übergeordnete "pom.xml" tatsächlich in "../pom.xml" in meinem SVN-Repository unter "trunk / MyFolder".

Aber Hudson kann es aus irgendeinem Grund nicht sehen (aber wie ich schon sagte, es funktionierte auf dem vorherigen Server).

Irgendwelche Hinweise?

[/ Bearbeiten]

Ich denke, das ist ein Anfängerfehler, ich bin ein totaler Anfänger auf Maven, aber ich kann einfach nicht herausfinden, warum es nicht mehr funktioniert ...

Jede Hilfe wird sehr geschätzt!

Nicolas

    
Nicolas 02.03.2011, 16:58
quelle

4 Antworten

16

relativePath (von parent ) ist standardmäßig auf ../pom.xml eingestellt. Es sieht so aus, als wäre es nicht da drin. Sie könnten es auf einen leeren Wert setzen, damit maven es als Abhängigkeit herunterlädt.

%Vor%

Dieser Link diskutiert das.

[Bearbeiten: basierend auf den Bearbeitungen der Frage]

Hudson sieht nur den Quellcode im Ohrordner. Obwohl das Elternpom in SVN vorhanden ist, ist es für Hudson nicht verfügbar. Missing eltern pom war eine Warnung in Maven 2, aber streng in Maven 3.

Es gibt zwei Möglichkeiten, dies zu lösen.

Man spezifiziert hudson, die URL http://[...]/trunk/MyProject/ . Sie können dann wählen, ob Sie alle Module erstellen möchten oder ob Sie das pom.xml of ear-Projekt allein erstellen möchten.

Die andere besteht darin, mvn install auf dem Hudson-System manuell auszuführen, so dass der Eltern-Pom einmal bereitgestellt und anschließend von Hudson verwendet wird. Dies wird jedoch nicht aktualisiert, wenn Elternpom nachträglich geändert wird.

    
Raghuram 03.03.2011, 05:56
quelle
4

Das Abrufen des Root-POM aus dem Maven-REPO sollte normalerweise auch funktionieren (wie Sie), aber ich würde erwarten, dass Sie den Root-Pom bisher noch nicht in den REPO auf der neuen Hudson-Site installiert haben.

Um dies zu vermeiden, verwenden Sie die relativePath-Eigenschaft, z. etwas wie das:

%Vor%

in Ihrem <parent> -Tag, das Maven sagt, dass es in Ihrer Modulstruktur nach dem Root-Pom suchen soll.

    
HefferWolf 02.03.2011 17:22
quelle
1

Ich hatte das gleiche Problem mit Hudson, Sonar-Plugin und einem Multi-Modul-Maven-Projekt: "Nicht auflösbares Eltern-POM", als Hudson versuchte, Sonar: Sonar zu laufen. Die Lösung bestand darin, den Root-POM-Speicherort in der Hudson-Jobkonfiguration im Bereich Sonar anzugeben.

Die Projektstruktur in SVN (jeweils ein Maven-Projekt mit pom.xml im Projektstamm):

%Vor%

Ich habe individuelle Hudson Jobs für jedes Projekt, "foo-parent", "foo-ui-modul" und "bar-other-modul". Der in einem Hudson-Job ausgeführte Sonar konnte den übergeordneten POM nicht finden, obwohl der Build bis zu diesem Zeitpunkt erfolgreich war. Vielleicht verwendet das Sonar-Plugin nicht die gleichen Maven-Einstellungen wie der Rest des Jobs, weil es nicht versucht hat, nach dem Eltern-POM aus unserem Artifactory-Repository zu suchen, auch nicht mit <relativePath/> im Projekt-POM.

Der Ort für die Root-POM-Einstellung war unter der Konfiguration des Jobs - & gt; Sonar - & gt; Erweitert - & gt; Root-POM: ../foo-parent/pom.xml (Ich habe einen foo-übergeordneten Job auf diesem Pfad)

    
apa64 16.12.2011 12:10
quelle
0

Wir haben das geschafft, indem wir einfach die relevante Pom-Datei sowie eine Art Metadatendatei mit einem ähnlichen Namen aus dem Ordner .m2/repository/a/b/c auf unserem jenkins-Server im selben Ordner löschten.

Nach dem Ausführen der jenkins Build funktionierte es gut.

Hoffe, das hilft jemandem ...

    
vikingsteve 12.08.2013 10:41
quelle

Tags und Links