Maven Build Prozess lädt Modul aus Nexus statt es zu bauen

Grizzly

Top Contributor
Hallo zusammen, 🙂

ich habe hier ein ganz dolles Phänomen:

Ich habe Apache Maven 3.0.4 zusammen mit Jenkins 1.527. Wenn ich in mein Maven Projekt ein neues Modul einbauen, bekomme ich immer folgendes Problem: Ein anderes Modul (nennen wir es mal Modul A), welches eine Abhängigkeit auf das neue Modul (nennen wir es mal Modul B) hat, wird gebaut. Dabei versucht Maven dann, das Modul B vom Nexus Server herunterzuladen. Das schlägt natürlich fehl.

Mir ist nicht klar, warum er nicht vorher prüft, welche Module bereits im Nexus sind und welche nicht. Und wenn dies ein Modul ist, welches zum aktuellen Projekt gehört, dieses dann einfach baut. Bzw. warum er aufgrund der Abhängigkeiten nicht zuerst den Built des Moduls B anwirft, dann vorher noch beim Nexus nachfragt, ob dieser vielleicht schon eine aktuelle Version hat um ggf. auf den Built verzichten zu können.

Ich gehe mal davon aus, dass das ein Konfigurationsproblem ist. Wobei ich im Internet dazu jetzt noch nichts gefunden habe.

Ein Workaround ist übrigens neue Module einzeln auf seinem eigenen Rechner zu bauen und in den Nexus zu deployen. Dann funktioniert auch der Build Prozess wieder. Das ist aber irgendwie nicht Ziel führend.
 
Was auch sehr interessant ist: Warum landen die Module überhaupt im Nexus. Als Goals sind "clean install" angegeben, jedoch nicht "deploy", was nach "install" kommt. Sprich Maven dürfte / sollte die gebauten Module gar nicht auf den Nexus deployen.
 
Okay, jetzt bin ich soweit, dass ich bemerkt habe, dass beim lokalen Builden die "Reactor Build Order" anders aussieht, als in meinem Jenkins. Dort fehlt das neue Modul nämlich komplett in dieser Liste.
 
Okay, Kommando zurück. Unser Microsoft Team Foundation Server hat mich vera****t (bzw. das Eclipse Plugin dazu). Die Projekt POM wurde vom TFS Plugin nicht in das TFS eingecheckt, allerdings als eingecheckt behandelt. Und es war nicht die einzige Datei, welche nicht gestimmt hat. Nach einem "Detect local changes" hatte ich einen ganzen Haufen an Dateien und Verzeichnissen, die lokal anders als im TFS waren. Nachdem ich diese Änderungen ebenfalls eingecheckt hatte, hat auch der Jenkins bzw. Maven die Module gefunden.

Naja, nicht das erste Mal, dass das TFS bzw. das zugehörige Eclipse Plugin Probleme macht. Sogar mit dem guten alten CVS hatte ich weniger Probleme...
 

Zurück
Oben