Увеличьте размер кучи в m2e плагин Eclipse

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

Всякий раз, когда я запускаю

mvn verify

Я получаю печально известное java.lang.OutOfMemoryError: Java кучу пространства... 63M/63M. Поэтому я сделал некоторые исследования в первую очередь. Увеличьте память через MAVEN_OPTS, Eclipse.ini/STS.ini, запустите конфигурацию и даже через плагины 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).

Ответ 1

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

"Запустить как" > "Maven Build", щелкните вкладку "JRE", введите VM args, например.

-Xms128M -Xmx512M

Ответ 2

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

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

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

"Запустить как" > "Maven Build", щелкните вкладку "JRE", введите VM args, например.

${env_var:MAVEN_OPTS}

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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

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