#java #maven #out-of-memory #sonarqube #maven-surefire-plugin
#java #maven #нехватка памяти #sonarqube #maven-верный плагин
Вопрос:
Мы постоянно получаем ошибки нехватки памяти при выполнении нашего анализа сонара. Это происходит периодически на разных машинах, но, похоже, как только вы ее получите, она сохраняется.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test (default-cli) on project optimus-client-web-configuration: Execution default-cli of goal org.apache.maven.plugins:
maven-surefire-plugin:2.16:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
[ERROR] Command wascmd.exe /X /C ""C:Program FilesJavajdk1.7.0_45jrebinjava" -javaagent:C:UserscxxxAppDataLocalTempjacocoagent8301608889470684052.jar=destfile=target/jacoco.exec,excludes=
*_javassist_* -jar C:redesign_Trunkoptimus-lms-serveroptimus-client-web-configurationtargetsurefiresurefirebooter2312966376869893038.jar C:redesign_Trunkoptimus-lms-serveroptimus-client-web-con
figurationtargetsurefiresurefire350975689095180011tmp C:redesign_Trunkxxx-xx-serverxxxtargetsurefiresurefire_45613339175612175619tmp"
Модульные тесты не завершаются ошибкой при запуске перед фазой sonar. Это происходит в одном конкретном тесте, который активирует конфигурацию Spring, чтобы проверить, что она работает нормально. Вероятно, этот тест потребляет больше памяти, чем большинство, поскольку он должен загружать весь контекст.
Я увеличил объем памяти в MAVEN_OPTS, чтобы использовать максимальную кучу 1024M. Добавлена эта конфигурация в мой pom
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
</plugin>
Ответ №1:
в этой конфигурации вы просто настраиваете плагин surefire для использования этой памяти при создании новой jvm, вам также необходимо увеличить память для mvn
jvm
export MAVEN_OPTS="-Xmx2048m"
попробуйте выше (с соответствующим объемом памяти)
Комментарии:
1. Чтобы сделать это непосредственно в команде Maven, добавьте это в параметр argLine следующим образом: mvn -DargLine=»-Xmx2048m» {… остальные аргументы maven}
Ответ №2:
Другие решения: запустите приложение [Eclipse IDE, SonarQube …] от имени администратора
Проблема:
1. Когда журнал ошибок содержит: ‘… Виртуальная машина завершила работу, не попрощавшись должным образом …’
2. Журнал ошибок содержит: «cmd.exe /C … ошибка что-то …»
3. Журнал ошибок содержит: ‘… java.io.tmpdir … c:windows ‘