Kann Maven 3 beschädigte Dateien erneut herunterladen, anstatt den Build zu beschädigen?

9
%Vor%

Beschädigte Dateien passieren in ~/.m2 , jeder weiß davon. Es zu reparieren ist so einfach wie das Entfernen der beschädigten Dateien, damit Maven es erneut herunterladen kann. Ich möchte die Protokolle jedoch nicht manuell vergrößern, eine Verbindung zum Erstellungsagenten herstellen und diese Dateien manuell entfernen. Zuverlässige Builds sollten in der Lage sein, mit solchen Problemen umzugehen.

Gibt es eine Möglichkeit, Maven dazu zu bringen, beschädigte Dateien erneut herunterzuladen, anstatt den Build zu beschädigen? Ich möchte ~/.m2 nicht vor jedem Build entfernen, da dies den Build sehr langsam machen würde.

Warum passiert das? Einer meiner Kunden hat eine kaputte Infrastruktur. Virtuelle Maschinen werden sehr oft ohne Ankündigung neu gestartet. Und da Builds die meiste Zeit ausgeführt werden, werden Dateien z. %Code%. Es gibt nichts, was ich in dieser Sache ändern kann, es sind ihre Server und ihre Politik - oder nur Unfähigkeit. Aber ich muss die Builds von Hand reparieren.

    
Nowaker 12.12.2012, 18:37
quelle

1 Antwort

3

Bis zu Maven 3.0.4 gibt es keine Möglichkeit, dies mit einem Aufruf von maven zu lösen.

Sie könnten ein Aggregator-Plug-in schreiben, das durch jedes der Module im Reaktor schreitet und deren Abhängigkeiten über API-Aufrufe auflöst (anstatt mit mojo-Annotationen), um Fehler zu erkennen und zu löschen und erneut zu versuchen.

Es würde nicht jeden Fall erfassen (zum Beispiel Plugin-Abhängigkeiten), aber wenn Sie etwas wie

getan haben %Vor%

Es wäre zuverlässiger.

Wenn Sie Maven 3.x benötigen, könnten Sie eine Build-Erweiterung schreiben und sie in $MAVEN_HOME/lib ablegen, und die Build-Erweiterung könnte dieselben Tricks wie das Plugin ausführen, aber weil es vor Plugin-Auflösung, könnte es die Fälle mit Plugins fangen.

Viel Arbeit, persönlich eine gute MRM macht Redouts blöd schnell, und in 8 Jahren, in denen ich Maven benutzt habe, habe ich vielleicht lokale Repo-Korruption vielleicht 3-4 Mal gehabt ... Und von diesen Zeiten war alle Bar eine, wo ich hatte Mehrere Repositories im Spiel und Metadaten (Pom) wurden aus einer einzigen aufgelöst, während das Artefakt aus einer anderen ... Nur ein Fall war die "HTML aus Versehen heruntergeladen" ... Alle von ihnen würden von einem MRM gestoppt werden

    
Stephen Connolly 19.01.2013 11:21
quelle