Увеличьте размер кучи в плагине Eclipse m2e - PullRequest
15 голосов
/ 26 октября 2011

Как увеличить размер кучи плагина Eclipse m2e? По сути, я пытаюсь запустить автоматический интеграционный тест с использованием Cargo и Selenium под STS (версия Eclipse от SpringSource) с предустановленным m2e (популярный плагин Maven для Eclipse).

Всякий раз, когда я бегу

mvn verify

Я получил печально известную java.lang.OutOfMemoryError: пространство кучи Java ... 63M / 63M . Итак, я сделал некоторые исследования в первую очередь. Увеличьте объем памяти с помощью MAVEN_OPTS, Eclipse.ini / STS.ini, Run Configurations и даже через подключаемые модули Maven через pom.xml. Ничего не изменилось. Та же ошибка и тот же объем памяти 63M / 63M.

Я знаю, что мой проект работает. POM правильно. Зачем? Потому что, когда я запускаю ту же команду, используя автономный Maven. Интеграционный тест с Selenium и Cargo работает. На самом деле вот последний вывод (3 минуты назад):

[INFO] [beddedLocalContainer] Jetty 8.x Embedded is stopped
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 minutes 24 seconds
[INFO] Finished at: Wed Oct 26 14:08:16 CST 2011
[INFO] Final Memory: 70M/149M
[INFO] ------------------------------------------------------------------------

Я не спрашиваю, как увеличить память в отдельной команде Maven. Я специально спрашиваю, как увеличить размер кучи для m2e.

Примечание. По умолчанию плагин m2e Eclipse не имеет ярлыка для цели проверки. Вы должны создать новый с помощью Run Configuration (которая не имеет вкладки Args, fyi).

Ответы [ 5 ]

34 голосов
/ 19 июля 2012

При работе с плагином Maven 2 установка параметров java в переменной среды eclipse.ini или MAVEN_OPTS не повлияет на вашу сборку.Вам необходимо добавить некоторые аргументы командной строки в диалоговом окне «Редактировать конфигурацию и запуск» в Eclipse.

«Запуск от имени»> «Сборка Maven», нажать на вкладку «JRE», ввести аргументы виртуальной машины, например,

-Xms128M -Xmx512M

10 голосов
/ 01 апреля 2014

В качестве продолжения уже принятого ответа, когда вы вызываете «mvn» в командной строке, вы действительно запускаете сценарий оболочки mvn.bat (или mvn.sh). Именно этот скрипт-обертка использует переменную MAVEN_OPTS env при запуске реального maven jvm.

m2e, с другой стороны, хочет получить больше контроля над тем, как запускается maven jvm, поэтому он делает это напрямую без оболочки. Вот почему вы добавляете свои настройки памяти непосредственно в ваши аргументы VM / run / debug конфигурации VM вместо использования MAVEN_OPTS.

Если вы хотите, чтобы m2e передавал то, что у вас уже есть в MAVEN_OPTS, в maven jvm, в диалоговом окне «Редактирование конфигурации и запуска» в Eclipse:

«Запуск от имени»> «Сборка Maven», щелкните вкладку «JRE», введите аргументы виртуальной машины, например,

${env_var:MAVEN_OPTS}
1 голос
/ 24 августа 2015

Вы можете добавить в свой pom.xml свои настройки памяти:

<plugin>
 <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    ...
    <fork>true</fork>
    <meminitial>128m</meminitial>
    <maxmem>512m</maxmem>
    ...
  </configuration>
</plugin>

Описание всех параметров maven-compiler-plugin здесь: ссылка

0 голосов
/ 15 марта 2012

Я столкнулся с подобной проблемой. Создайте файл с именем mavenrc_pre.bat в Windows или .mavenrc в Linux в вашей домашней папке и установите в нем свои параметры maven_opts. Он работает с m2e в комплекте с Eclipse Indigo.

0 голосов
/ 26 октября 2011

Вы пытались установить переменную среды MAVEN_OPTS для своей конфигурации запуска?

MAVEN_OPTS="-Xmx768M -XX:MaxPermSize=128m" 

Возможно, вам придется редактировать системные переменные среды, если ее установка в конфигурации запуска не помогает,См. здесь или здесь

...