Chcę uruchomić wbudowaną instancję tomcat7 bezpośrednio z maven za pomocą tomcat7-maven-plugin. Działa to dobrze, ale początkowo Tomcat nie ma wystarczającej ilości pamięci. Podejrzewam, że potrzebowałbym ustawićZwiększyć pamięć wtyczki tomcat7 maven?
, ale nie mogę wymyślić, jak to zrobić.
Dokumentacja mówi, że należy użyć elementu "systemProperties" w sekcji "konfiguracja" wtyczki. Jednak opcje są określone jako elementów XML i musiałby wyglądać tak:
<configuration>
<systemProperties>
<XX:MaxPermSize>256m</XX:MaxPermSize>
</systemProperties>
</configuration>
Ale to oczywiście nie jest możliwe, gdyż łamie XML (XX jest interpretowany jako nazw).
Oczywiście mogę ominąć ten problem przez ustawienie zmiennej środowiskowej
MAVEN_OPTS=-XX:MaxPermSize=256m
ale wolałbym, aby tylko zwiększyć ją do wbudowanego serwera Tomcat. Wszelkie pomysły, jak to zrobić?
Bardzo fajnie, nawet jeśli w ogóle nie udokumentowano :-) – Sebi
To w ogóle mi nie pomogło i naprawdę nie oczekiwałbym tego. Proces java już się rozpoczął i wydaje się, że [nawet jeśli rozwidlasz, nadal nie otrzymujesz nowego procesu java] (http://mojo.10943.n7.nabble.com/How-to-set-user- timezone-within-tomcat-maven-plugin-td36517.html). Więc myślę, że musisz ustawić maksymalne rozmiary sterty przed rozpoczęciem maven. Kiedy próbowałem użyć znacznika, aby ustawić rozmiar na 256, po uruchomieniu aplikacji zrobiłem maven-pid jstat -gccapacity i zobaczyłem, że mój max perm gen nadal wynosi tylko 82 kb. –
rzrelyea
dodanie tego do pom.xml nie będzie pracować, jest już za późno. Musisz przekazać takie parametry bezpośrednio do JVM, w Run -> Run configuration ...-> JRE tab -> VM Arguments. Można sprawdzić, co się dzieje z VisualVM (prosty profiler osadzony w Oracle JDK). –