Анализ сонара выдает ошибку памяти, должен ли я увеличить пространство кучи JVM Ant или Sonar server?
Я анализирую большой проект в Sonar и получаю следующую ошибку:
[sonar:sonar] 03:55:39.511 INFO p.PhasesTimeProfiler - Execute decorators...
BUILD FAILED
[...]
[...] java.lang.OutOfMemoryError: Java heap space
at org.sonar.batch.index.MeasurePersister.model(MeasurePersister.java:127)
at org.sonar.batch.index.MeasurePersister.getMeasuresToSave(MeasurePersister.java:117)
at org.sonar.batch.index.MeasurePersister.dump(MeasurePersister.java:70)
at org.sonar.batch.index.DefaultPersistenceManager.dump(DefaultPersistenceManager.java:63)
at org.sonar.batch.phases.Phases.execute(Phases.java:95)
at org.sonar.batch.bootstrap.ProjectModule.doStart(ProjectModule.java:139)
at org.sonar.batch.bootstrap.Module.start(Module.java:83)
at org.sonar.batch.bootstrap.BatchModule.analyze(BatchModule.java:131)
at org.sonar.batch.bootstrap.BatchModule.doStart(BatchModule.java:121)
at org.sonar.batch.bootstrap.Module.start(Module.java:83)
at org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:121)
at org.sonar.batch.bootstrap.Module.start(Module.java:83)
at org.sonar.batch.Batch.execute(Batch.java:104)
at org.sonar.ant.Launcher.execute(Launcher.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.sonar.ant.SonarTask.delegateExecution(SonarTask.java:244)
at org.sonar.ant.SonarTask.execute(SonarTask.java:193)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
at org.apache.tools.ant.Target.performTasks(Target.java:413)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
должен ли я увеличить пространство кучи java запущенного сервера Sonar или целевой объект Ant, выполняющий задание Sonar?
1 ответов
как вы можете видеть из трассировки стека, Ant запускает анализ гидролокатора, поэтому вы должны увеличить пространство кучи для виртуальной машины, в которой работает Ant.
Это очень похожий вопрос кстати: как увеличить пространство кучи Java Sonar
для использования Ant командной строки
цитата из ответа Марка О'Коннора на другой вопрос:
задача Sonar ANT выполняется как часть ANT, поэтому вам нужно установить JVM куча с использованием стандартного параметра среды ANT. Например:
экспорт ANT_OPTS= - Xmx256m
Примечания:
- это для Linux, для Windows, используйте
set
команда - это строго для кучи пространства. для
Permgen
используйте-XX:MaxPermSize=<desired amount>
это еще более похожий вопрос: ошибка сборки java.ленг.OutOfMemoryError: пространство кучи Java
Для Eclipse IDE
цитата из статьи http://soenkerohde.com/2008/06/change-eclipse-ant-settings-when-you-run-out-of-memory/
- в Eclipse открыть меню:Run ->Внешние Инструменты ->Открыть Диалог Внешних Инструментов...
- выберите сценарий сборки, который вы хотите изменить слева
- выберите JRE вкладка справа
- установить вслед за as параметры VM: - Xms768m-Xmx1024m-XX: MaxPermSize=512m
Для IntelliJ Idea
эта тема форума полезна:ANT построить пространство кучи java
цитата из ответов:
пожалуйста, убедитесь, что вы увеличили кучу в правильном месте. Вам нужно нажать кнопку "Свойства" в окно инструментов муравья идеи редактировать 'максимальный размер кучи размер (Мб)' поле есть.
кроме того, со страницы IntelliJ Idea:Увеличение Памяти
цитата из статьи:
куча памяти процесса сборки не зависит от кучи памяти IntelliJ IDEA и освобождается после завершения процесса сборки.
для увеличения кучи памяти: Откройте Свойства Файла Сборки окне. В максимальный размер "кучи" поле, Введите необходимый объем памяти.
для непрерывной интеграции Дженкинса и сборки Ant
этот вопрос полезно : как использовать Java Options
в Jenkins ant build tool для установки ANT_OPTS
цитата из ответа:
установите параметры JAVA как-Xmx512m-XX: MaxPermSize=256m только без ANT_OPTS=
на Maven строит эта статья использовать: как увеличить Maven heapspace в Hudson builds
- перейдите к вашей работе hudson,
- клик настроить,
- прокрутите вниз до Создать Раздел и
- выберите дополнительно.
- ввести его в MAVEN_OPTS: - Xmx512m-XX: MaxPermSize=128m