Buduję aplikację Java Maven na serwerze kompilacji Jenkins. W trakcie kompilacji na Jenkinsach (ale nigdy na moim lokalnym hoście lokalnym) wielokrotnie występuję pod java.lang.OutOfMemoryError: PermGen space
, a więc nie udaje mi się skompilować.Ustaw rozmiar permgenu dla procesów potomnych JVM, które Maven wyłączy się
Próbowałem już ustawienie MAVEN_OPTS
dla Jenkins: Poszedłem do Jenkins
->Manage Jenkins
->Configure system
->Global MAVEN_OPTS
i został ustawiony na -Xms512m -Xmx1024m -XX:MaxPermSize=512m -XX:PermSize=512m
. Pomimo ustawienia tej wysokiej wartości, ciągle wpadamy na problemy z przestrzeniami PermGen. Nie chcę ustawić MAVEN_OPTS na wyższą wartość; Nie widzę, jak moja aplikacja może wymagać dużej przestrzeni i wolę zagłębić się w problem z dużą ilością pamięci.
Ostatnio, myślałem, że być może problem przestrzeni permen NIE pochodzi z samego Mavena, ale raczej z jednego z procesów JVM, które Maven odpina (np. Wtyczki). Proponuję tę hipotezę, ponieważ Maven wciąż jest w stanie wykonać testy TestNG w porządku, mimo że już wypluwają nasze linie błędów permen space. Jeden taki plugin, który jest przyczyną błędu PermGen jest Jetty:
Oct 31, 2012 7:55:37 AM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: handle failed
java.lang.OutOfMemoryError: PermGen space
Dlatego chciałbym wiedzieć:
Czy zmienna MAVEN_OPTS
stosuje się także do dziecka JVM przetwarza że build Maven obraca się ? Jeśli nie, to w jaki sposób ustawić opcje maszyny JVM dla procesów podrzędnych, takich jak Jetty?
UWAGA: Używam Maven 3.0.4.
Próbowaliśmy ustawić argLine, ale nie działało, gdy uruchomiliśmy 'mvn gae: run', która jest * maven-gae-plugin *. – ecbrodie
Patrząc na kod źródłowy 'maven-gae-plugin', wypróbowałeś jego parametr' jvmFlags'? – Kkkev
Wpadłem ostatnio na ten sam problem, więc wypróbowałem twoją sugestię o ustawieniu parametru 'jvmFlags' ... i działało jak czar! Mój problem polegał na tym, że ustawiliśmy znacznik '' w konfiguracji dla wtyczki maven-gae, ale powinniśmy używać '' przez cały czas. Dziękuję Ci! –
ecbrodie