Soeben hatte ich Probleme mit Maven gehabt und einige Zeit nach einer Lösung gesucht. Hier möchte ich euch diese sehr einfach für Linux und Windows vorstellen. Das Problem ist, dass Maven von
Hause aus zu wenig Speicher hat und dann manchmal einen AbstractArchiver Fehler auslöst.
Problem-Beschreibung
Das Problem ist, dass Maven nach mvn install eine Endlosschleife aufweist. Diese gibt hunderte Male
org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467) wieder. Leider bricht dadurch der Kompilierungs-Vorgang ab. Daher können wir dieses Problem
nicht einfach ignorieren. Die Lösung ist aber sehr einfach. Wie müssen lediglich die MAVEN_OPTS Variable setzen und Maven damit mehr Speicher für die Anzeige geben. Warum das so
ist, ist nicht gänzlich klar. Eigentlich wurde dieser Fehler schon 2012 gefixt.
Linux
Damit unter Linux die MAVEN_OPTS Variable gespeichert wird, benötigen wir eine persinstente Speicherung. Der einfachste Weg ist über die /etc/profile Datei.
Diese öffnet ihr nun also.
Hier geben wir dann ganz am Ende export MAVEN_OPTS="-Xmx512m -Xms128m -Xss2m" ein und speichern die Datei ab.
Jetzt starten wir das System neu mit sudo reboot. Wenn das System wieder erreichbar ist einfach echo $MAVEN_OPTS eingeben und nun solltet ihr -Xmx512m
-Xms128m -Xss2m zurückbekommen. Jetzt sollte Maven wieder per mvn install funktionieren.
Windows
Unter Windows ist das nochviel einfacher. Hier gehen wir zu den Systemvariablen und legen einfach MAVEN_OPTS an und geben ihm den Wert -Xmx512m -Xms128m -Xss2m.
Wir brauchen nun weder das System, noch irgendetwas anderes neu zu starten.
Fazit
Warum dieser Fehler immer noch besteht ist unklar. Immerhin ist die Lösung dafür sehr einfach, wenn man denn erst einmal darauf kommt.
Kommentar schreiben
George (Mittwoch, 05 November 2014 21:36)
Hey kwoxer, ich denke zwar, dass deine Beschreibung hier super ist. Allerdings würde sich für sowas auch ganz gut StackOverflow eignen oder?
Nicht böse nehmen, war nur eine Frage =)
kwoxer (Freitag, 07 November 2014 11:52)
Nun StackOverflow ist eher so der Ausweg für Leute ohne eigene Webseite. StackOverflow verfügt einfach nicht über die Mittel, die in einem Blog/Webseite zur Verfügung stehen. Hier kann ich JAvaScript einbauen, wie z.B. wenn du auf eines der Bilder klickst. Oder generell Bilder einbetten was bei StackOverflow nicht klappt. Auch ist StackOverflow sehr statisch, kaum irgendwas kann dort angepasst werden. Natürlich hat das auch Vorteile, dass User schnelle Infos lesen können weil sie verinheitlicht sind. Aber jeder Designer ist sicher verärgert darüber. Daher danke ich, dass wenn ich solche Fehler finde und die Lösung so einfach ist, es sich auch im eigenen Blog lohnt darüber zu schreiben.
LG