Jeśli zabraknie miejsca na sterty podczas niezawodnego (lub bezpiecznego) przebiegu testowania JUnit, zmiana MAVEN_OPTS może nie pomóc. Próbowałem różnych konfiguracji w MAVEN_OPTS bez powodzenia, dopóki nie znalazłem tego posta, który rozwiązał problem.
Zasadniczo JUnits rozwidlają się do własnego środowiska i ignorują ustawienia w MAVEN_OPTS. Musisz skonfigurować pewne działanie w swoim pomie, aby dodać więcej pamięci dla JUnits.
Miejmy nadzieję, że może to zaoszczędzić trochę czasu komuś innemu!
Edycja: Kopiowanie rozwiązania z bloga Keitha Chapmana na wypadek, gdyby łącze któregoś dnia pękło:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-Xms256m -Xmx512m</argLine>
<testFailureIgnore>false</testFailureIgnore>
<skip>false</skip>
<includes>
<include>**/*IntegrationTestSuite.java</include>
</includes>
</configuration>
</plugin>
Aktualizacja (31.05.2017): Dziękuję @johnstosh za wskazanie tego - surefire nieco ewoluował, odkąd zamieściłem tę odpowiedź. Oto link do ich dokumentacji i zaktualizowany przykładowy kod (linia arg jest nadal ważną częścią tego pytania):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
<systemPropertyVariables>
<databaseSchema>MY_TEST_SCHEMA_${surefire.forkNumber}</databaseSchema>
</systemPropertyVariables>
<workingDirectory>FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory>
</configuration>
</plugin>