2014-07-09 12 views
10

Próbowałem uruchomić na mac gotowy projekt maven, który działa pod Linux. Dzwoniąc mvn clean install biegnie część testów, a potem otrzymuję następujący błąd:Testy osx maven uruchomione Wyjątek: java.lang.OutOfMemoryError wyrzucony z UncaughtExceptionHandler w wątku "główny"

Wyjątek w wątku „głównego” wyjątek: java.lang.OutOfMemoryError wyrzucony z UncaughtExceptionHandler w wątku „main”

Widziałem wiele pytań na temat Perm gen błąd naprawiony z dodaniem MAVEN_OPTS do zmiennych środowiskowych. Teraz mam następującą zmienną środowiskową w moim systemie:

MAVEN_OPTS = „- Xmx4096m -XX: MaxPermSize = 4096m”

Dzwoniąc mvn help:system widzę te opcje wyświetlane w konfiguracji.

Projekt stosuje Robolectric dla celów badawczych (w większości przypadków, ale nie zawsze) drukuje następujące linie przed wyrzuceniem wyjątek:

[DEBUG] ************ ********* ** GC'ed SdkEnvironment ponownie wykorzystane!

[BŁĄD] Nie można załadować org.robolectric.internal.ParallelUniverse w [email protected]

W monitorze aktywności widzę proces java ożywają kiedy zacznę testy. Jego wykorzystanie pamięci osiąga 1,4 ~ 1,5 GB przed wyrzuceniem wyjątku.

Co jeszcze należy zrobić, aby działało. Dzięki za pomoc!

EDIT po dodaniu opcji pamięci na pewno ognia 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> 

i działa mvn clean install -e -X mam następujący ślad stosu:

[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] 

to z 2 GB pamięci dla murowany i 4 GB dla mavenów.

Odpowiedz

23

naprawiłem ten problem dodając kolejną magiczną zmienną środowiskową

JAVA_TOOL_OPTIONS="-Xmx1024m -XX:MaxPermSize=512m -Xms512m"

+0

Mam ten sam problem, ale tylko wtedy, gdy budowa Maven jest prowadzony przez TeamCity. W ten sposób ustawiłem parametr kroku TeamCity Maven Build Step "Parametry wiersza poleceń JVM" na "-Xmx1024m -XX: MaxPermSize = 512m -Xms512m". Wielkie dzięki! –

Powiązane problemy