2011-06-17 15 views
23

jak zwiększyć rozmiar ant permgen? Dałem w ANT_OPTS jakjak zwiększyć rozmiar ant permgen?

-Xms768m -Xmx1024m -XX: PermSize = 128m -XX: MaxPermSize = 128m

pytanie 1) Po określeniu powyżej ustawienie w środowisku systemu, nadal jestem wydostanie się z pamięci błędu dla ant target dla junit.

Caught an exception while logging the end of the build. Exception was: 
java.lang.OutOfMemoryError: PermGen space 

2) kiedy wpisać polecenia promt aby zobaczyć co jest ścieżka dla ant_opts, echo% ant_opts% to pokazuje tylko

-Xmx512m

i inne części pomija. Czy coś jest nie tak na mojej drodze? Uwaga: używam wiersza polecenia do uruchomienia ant target.

+0

Sprawdź, czy nie masz żadnej innej zmiennej (np. 'JAVA_OPTS') nadpisującej. – Mikaveli

+0

Czy używasz tego przez jakiś kontener? Być może nie przekazuje on wartości. –

+0

Nie, nie mam żadnych innych OPTS. Przeprowadzam test integracji, który zajmuje więcej czasu, aby wykonać test cases.using w wierszu polecenia, aby uruchomić mrówkę dla raportu junit. – TechFind

Odpowiedz

25

iść do mojego komputer-> right click> Ustawienia-> Zaawansowane-> środowisko variables-> Nowy (w systemie/zmienna użytkownika) ->

wprowadzić

Varible name: ANT_OPTS 
Varible Value : -Xms1536m -Xmx1536m -XX:PermSize=1024m -XX:MaxPermSize=2048m 

Uwaga:

  1. wartości Konfiguracja zależności od wielkości pamięci systemowej.

  2. Ten config do okien, do drugiej konfiguracji OS odpowiednio

dla Mac:

w Terminalu, goto pom.xml ścieżki w projekcie, należy uruchomić poniżej polecenia:

MAVEN_OPTS eksport = "- Xmx1024m -XX: MaxPermSize = 512m" Uwaga: Rozmiar jest oparty na pamięci RAM systemu. Użyłem maven zamiast starego mrówki. użyj MAVEN_OPTS/ANT_OPTS dla konfiguracji maven/ant.

+3

Jak można się spodziewać, to nie działa na moim komputerze: Mac z systemem OS X! – gutch

+0

na kopalni ani (ubuntu 12.04) – mondjunge

+0

Czy instrukcje mac powinny być "ANT_OPTS" a nie "MAVEN_OPTS"? – pgreen2

3

Co robi twój test? Czy wywołuje metodę rekursywną?

Ponadto wartości wprowadzone w teście zastąpią dowolne ustawienie systemowe. Spróbuj tego w swoim powołaniu do JUnit w Ant skryptu:

<junit fork="yes" maxmemory="1024"> 
+1

Co jest domyślne, jeśli nie dostarczasz 'maxmemory'? – Blundell

+0

Świetna odpowiedź!Zauważyłem, że wystąpił błąd braku pamięci, ponieważ nasz '' został zmieniony. Domyślnie jest to 'perTest', ale jeśli zostanie zmieniony na coś innego (np.' Once'), może to spowodować wyjątki OutOfMemory, ponieważ junit nie uruchamia nowej instancji maszyny wirtualnej dla każdego testu. –

1

dla mojego mrównego celu ant Właśnie ustawiłem fork="true" w ten sposób, że nowy jvm zostanie zainicjowany dla zadań junit, jest też forkmode="perBatch" lub "perTest", pracował dla mnie!

Powiązane problemy