osx maven ausführen von tests Exception: java.lang.OutOfMemoryError geworfen aus dem UncaughtExceptionHandler in thread "main"
Ich habe versucht Sie laufen auf mac bereit maven-Projekt, welches unter linux läuft. Beim Aufruf
mvn clean install
es läuft ein Teil des tests und dann bin ich immer die folgende Fehlermeldung:
Exception in thread "main" Exception: java.lang.OutOfMemoryError geworfen aus dem UncaughtExceptionHandler in thread "main"
Ich habe gesehen, viele Fragen über PermGen-Fehler behoben beim hinzufügen MAVEN_OPTS
auf Umgebungsvariablen. Jetzt habe ich die folgenden Umwelt-Variablen, die auf meinem system:
MAVEN_OPTS="-Xmx4096m -XX:MaxPermSize=4096m"
Beim Aufruf mvn help:system
ich kann sehen, diese Optionen zeigen sich in der Konfiguration.
Projekt verwendet Robolectric für Testzwecke und (meistens, aber nicht immer) druckt die folgenden Zeilen vor dem werfen der exception :
[DEBUG] ********************* **GC ' ed SdkEnvironment wiederverwendet!
[ERROR] konnte nicht geladen werden: org.robolectric.intern.ParallelUniverse in org.robolectric.bytecode.AsmInstrumentingClassLoader@300abe53
In der Aktivitätsanzeige kann ich sehen, ein java-Prozess, der zum Leben erwacht, wenn ich starten Sie die tests. Die Speichernutzung erreicht, 1.4~1.5 GB, bevor die exception geworfen wird.
Was sollte ich sonst tun, um es arbeiten.
Vielen Dank für Ihre Hilfe!
BEARBEITEN
nach dem hinzufügen der Speicher-Optionen, um sicherzustellen, dass Feuer-plugin :
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <argLine>-Xmx2048m -XX:MaxPermSize=2048m</argLine> </configuration> </plugin>
und läuft mvn clean install -e -X
habe ich die folgende stack-trace:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project android: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: There was an error in the forked process
[ERROR] java.lang.OutOfMemoryError: PermGen space
[ERROR] at java.lang.ClassLoader.defineClass1(Native Method)
[ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
[ERROR] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[ERROR] at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
[ERROR] at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
[ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
[ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[ERROR] at java.security.AccessController.doPrivileged(Native Method)
[ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[ERROR] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
[ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[ERROR] at org.apache.maven.surefire.report.SmartStackTraceParser.getMinimalThrowableMiniMessage(SmartStackTraceParser.java:166)
[ERROR] at org.apache.maven.surefire.report.SmartStackTraceParser.getString(SmartStackTraceParser.java:151)
[ERROR] at org.apache.maven.surefire.report.PojoStackTraceWriter.smartTrimmedStackTrace(PojoStackTraceWriter.java:61)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:328)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:312)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.toString(ForkingRunListener.java:258)
[ERROR] at org.apache.maven.surefire.booter.ForkingRunListener.testError(ForkingRunListener.java:132)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:162)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] -> [Help 1]
Ist mit 2 GB Speicher für surefire und 4 GB für maven.
InformationsquelleAutor RaINqer | 2014-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Behob ich dieses problem durch das hinzufügen einer weiteren magic-Umgebungsvariable
JAVA_TOOL_OPTIONS="-Xmx1024m -XX:MaxPermSize=512m -Xms512m"
JVM command line parameters
zu-Xmx1024m -XX:MaxPermSize=512m -Xms512m
. Vielen Dank!InformationsquelleAutor RaINqer