Настройка пространства кучи Java под Maven 2 в Windows

Я получаю это сообщение во время сборки моего проекта

java.lang.OutOfMemoryError: пространство кучи Java

Как увеличить пространство кучи, у меня есть 8 ГБ или ОЗУ, что невозможно, так как я их нашел, я нашел это http://vikashazrati.wordpress.com/2007/07/26/quicktip-how-to-increase-the -java-heap-memory-for-maven-2-on-linux / как это сделать на linux, но я на Windows 7. Как я могу изменить кучу java-пространства под windowsми?

Переменная среды, которую нужно установить, – MAVEN_OPTS , например MAVEN_OPTS=-Xmx1024m . Конфигурация maxmem в pom применяется только тогда, когда вы устанавливаете плагин компилятора в fork javac в новую JVM. В противном случае плагин запускается внутри той же виртуальной машины, что и Maven, и, таким образом, в памяти, переданной в командной строке через MAVEN_OPTS .

Чтобы установить MAVEN_OPTS под Windows 7:

  1. Щелкните правой кнопкой мыши на «Мой компьютер» и выберите « Свойства» (сочетание клавиш нажмите « Windows + Пауза / Перерыв» )
  2. Нажмите ссылку « Дополнительные системные настройки», расположенную в левой навигационной панели «Свойства системы», чтобы отобразить расширенные свойства системы
  3. Перейдите на вкладку « Дополнительно » и нажмите кнопку « Переменные среды» , расположенную в нижней части windows конфигурации « Дополнительные параметры системы»
  4. Создайте новую пользовательскую переменную, установите имя переменной в MAVEN_OPTS и установите для параметра Variable значение -Xmx1024m (или больше)

Откройте новое командное окно и запустите mvn .

Если во время проверки работоспособности (или отказоустойчивости) у вас заканчивается куча памяти, изменение MAVEN_OPTS может не помочь вам. Я продолжал пробовать разные конфигурации в MAVEN_OPTS без везения, пока не нашел этот пост, который устранил проблему.

По сути, JUnits развивает свою среду и игнорирует настройки в MAVEN_OPTS. Вам нужно настроить surefire в своем pom, чтобы добавить больше памяти для JUnits.

Надеюсь, это может спасти кого-то еще некоторое время!


Редактирование: копирование решения из блога Кейта Чапмана на случай, если ссылка сломается однажды:

  org.apache.maven.plugins maven-surefire-plugin  pertest -Xms256m -Xmx512m false false  **/*IntegrationTestSuite.java    в  org.apache.maven.plugins maven-surefire-plugin  pertest -Xms256m -Xmx512m false false  **/*IntegrationTestSuite.java    

Обновление (5/31/2017): Благодаря @johnstosh за то, что вы указали это – верность немного изменилась с тех пор, как я поставил этот ответ. Вот ссылка на их документацию и обновленный образец кода (строка аргумента по-прежнему является важной частью этого вопроса):

   org.apache.maven.plugins maven-surefire-plugin 2.20  3 true -Xmx1024m -XX:MaxPermSize=256m  MY_TEST_SCHEMA_${surefire.forkNumber}  FORK_DIRECTORY_${surefire.forkNumber}   

Это должна быть та же самая команда, кроме SET вместо EXPORT

  • set MAVEN_OPTS = -Xmx512m даст ему 512 Мб кучи
  • set MAVEN_OPTS = -Xmx2048m даст ему 2 Гб кучи

На Mac: вместо JAVA_OPTS и MAVEN_OPTS вместо этого используйте _JAVA_OPTIONS. Это работает!

После попытки использовать переменную MAVEN_OPTS не повезло, я наткнулся на этот сайт, который работал на меня. Так что все, что мне нужно было сделать, это добавить -Xms128m -Xmx1024m к параметрам VM по умолчанию, и это сработало.

Чтобы изменить параметры в Eclipse, перейдите в Window -> Preferences -> Java -> Установленные JRE. Выберите отмеченный JRE / JDK и нажмите «Изменить».

На windowsх:

Добавьте переменную окружения (как в системных, так и в пользовательских переменных, у меня есть какая-то странная проблема, что она получает var из разных мест, поэтому я добавляю их в оба из них).

Назовите его MAVEN_OPTS.

Значение будет: -Xms1024m -Xmx3000m -XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled

Числа могут быть разными, сделать их относительно вашего размера.

У меня была эта проблема, и это зафиксировало это, больше ничего!

Сработало – Чтобы изменить в Eclipse, перейдите в Window -> Preferences -> Java -> Установленные JRE. Выберите отмеченный JRE / JDK и нажмите «Изменить».

По умолчанию VM Arguments = -Xms128m -Xmx1024m

Вы ищете два варианта java :

  • Максимальный размер кучи -Xmx
  • -Xms начальный размер кучи

Поместите их в вызове командной строки исполняемого файла java , например:

 java -Xms512M -Xmx1024M my.package.MainClass 

Имейте в виду, что вы можете захотеть, чтобы размеры начальной и максимальной кучи были одинаковыми, в зависимости от приложения, поскольку он позволяет избежать изменения размера кучи во время выполнения (что может занять время в приложениях, которые требуют отклика). Изменение размера кучи может повлечь за собой перемещение множества объектов и повторное ведение бухгалтерии.

Для ежедневных проектов сделайте их так, как вы считаете, достаточно хорошими. Профиль для справки.

  • Maven: включение jar не найден в публичном репозитории
  • Maven: команда для обновления репозитория после добавления зависимости от POM
  • Maven GWT 2.0 и Eclipse
  • Возможно ли создать «uber» jar, содержащую classы проекта и зависимости проекта как банки с пользовательским файлом манифеста?
  • Maven проверяет наличие обновленных зависимостей в репозитории
  • Импорт проекта maven в eclipse
  • SLF4J: путь classа содержит несколько привязок SLF4J
  • Сбор Maven: добавьте другую версию того же артефакта
  • Разделить тестовые ресурсы между maven-проектами
  • Управление окончательным именем maven артефакта
  • maven: Как пропустить тест в некоторых проектах через параметры командной строки?
  • Давайте будем гением компьютера.